JWindow的右键菜单在失去焦点后不能自动消失
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JWindow;
public class Main {
public Main() {
}
static public class PopupListener extends MouseAdapter {
JPopupMenu menu;
public PopupListener(JPopupMenu menu) {
this.menu = menu;
}
public void mousePressed(MouseEvent e) {
showPopup(e);
}
public void mouseReleased(MouseEvent e) {
showPopup(e);
}
private void showPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
menu.show(e.getComponent(), e.getX(), e.getY());
System.out.println("Showing menu at "
+ menu.getLocationOnScreen() + " isVisible: "
+ menu.isVisible() + " isValid: " + menu.isValid());
}
}
}
public static void main(String[] args) {
JWindow window = new JWindow();
window.setBounds(10, 10, 100, 100);
JPopupMenu popupMenu = new JPopupMenu();
JMenuItem quit = new JMenuItem("Quit");
quit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
popupMenu.add(quit);
window.addMouseListener(new PopupListener(popupMenu));
window.setFocusable(true);
window.validate();
window.setVisible(true);
}
}
上面是例子,运行后会发现,在那个JWindow上点击右键会出现"quit"的弹出菜单,在JWindow上点击左键弹出菜单会消失.....这没有问题.....问题是,将鼠标移到jwindow之外的区域点击,弹出菜单不会消失.............求解决办法.....................
...全文
相关推荐
java做GUI启动界面详解
关于如何生成进度条的一些demo 当一个应用程序启动需要较长时间时,往往在等待过程中让人明显感到速度 慢,难免产生厌烦的心理,怎样可以缓解这种心情呢? 方案: 在应用程序启动耗费时间较长的情况下,通常引用一个表示欢迎使用本程序的 启动界面Splash Window,在应用程序初始化完成后该画面自动消失,在等待的 这段时间里用户可通过欣赏画面来打磨时间。 java中如何实现进度条的效果
java Swing 气泡浮动提示窗口代码
在Swing开发时,有个地方需要实现窗口右下解的浮动窗口效果 必须及时信息提示,新闻预览等。 在Swing开发时,有个地方需要实现窗口右下解的浮动窗口效果 必须及时信息提示,新闻预览等。
2021-2022计算机二级等级考试试题及答案No.17311.docx
2021-2022计算机二级等级考试试题及答案No.17311.docx
2021-2022计算机二级等级考试试题及答案No.17846.docx
2021-2022计算机二级等级考试试题及答案No.17846.docx
Java很神奇swing制作欢迎屏幕.doc
Java很神奇swing制作欢迎屏幕.doc


Java SE
