JWindow弹出式菜单问题

给JWindow添加弹出式菜单,弹不出来。把JWindow换成JFrame就可以弹出来了。因为我的程序必须使用JWindow,所以希望大家帮帮忙,让JWindow可以弹出... 给JWindow添加弹出式菜单,弹不出来。把JWindow换成JFrame就可以弹出来了。因为我的程序必须使用JWindow,所以希望大家帮帮忙,让JWindow可以弹出弹出式菜单,或是说明弹不出来的原因。
匿名的朋友,我用的是JDK6.0。
奇怪的是,当我把程序打包为jar文件后,双击运行时就可以弹出来了。呵呵~,看来对JDK6.0还是不太了解。现在正在看源码,不过没有发现什么问题。也许是Popup类的问题。讲究中!~
JDK1.6_02的问题,更换为JDK1.6_10之后,总是解决了。
展开
 我来答
匿名用户
2009-06-12
展开全部
//: JWin.java 能正常响应:

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPopupMenu;
import javax.swing.JWindow;
public class JWin {
public static void main(String[] args) {
JWindow w = new JWindow();
w.setAlwaysOnTop(true);
w.setLayout(new FlowLayout(FlowLayout.LEFT));
final JPopupMenu pm = new JPopupMenu();
pm.add(" a ");
pm.add(" b ");
pm.add(" c ");
JButton b = new JButton("exit");
w.add(b);
JLabel l = new JLabel("<html><br/>弹出式菜单<br/><br/>");
l.setOpaque(true);
l.setBackground(Color.red);
w.add(l);

// w.getContentPane().addMouseListener(new MouseListener(){
// public void mouseClicked(MouseEvent e) {}
// public void mouseEntered(MouseEvent e) {}
// public void mouseExited(MouseEvent e) {}
// public void mousePressed(MouseEvent e) {if(e.isPopupTrigger())pop(e);}
// public void mouseReleased(MouseEvent e) {if(e.isPopupTrigger())pop(e);}
// void pop(MouseEvent e){
// pm.show((JComponent)e.getSource(),e.getX(),e.getY());
// }
// });

l.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {if(e.isPopupTrigger())pop(e);}
public void mouseReleased(MouseEvent e) {if(e.isPopupTrigger())pop(e);}
void pop(MouseEvent e){
pm.show((JComponent)e.getSource(),e.getX(),e.getY());
}
});

b.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {System.exit(0);}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
});

w.setSize(200,100);
w.setVisible(true);
}
}
miniapp3h6bvq1GkGkIk
2009-06-12 · TA获得超过195个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:148万
展开全部
应该可以的,应该是你哪里设置的问题,如果实在不行,你就换成JFrame
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式