在最大化 JFrame 时,我遇到了 Swing 处理鼠标位置的奇怪行为:
当我执行这个非常简单的代码时......
public class Test {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("File");
menu.add(new JMenuItem("New"));
menubar.add(menu);
frame.setJMenuBar(menubar);
frame.setSize(200, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
...我通常可以单击File
(第一次单击-按下,释放)-> New
(第二次单击)。但是当我最大化 JFrame 并单击时File
- 上下文菜单会在鼠标释放时立即消失。此外,当我按住鼠标按钮时 - 为了防止消失 - 我必须将鼠标移动得更远以专注于New
项目。
红点表示在按住鼠标按钮New
后我必须移动鼠标以聚焦的区域(或多或少) 。File
我在使用“右键单击上下文菜单”时观察到相同的行为,例如在 JFreeChart 中右键单击图表时。
我以为是 JDK 的问题,因为我使用了 Oracle 的 JDK,但是安装 OpenJDK 后我得到了相同的结果。
有人观察到这种奇怪的行为吗?还是我错过了一些明显的东西?
我用:
- 1.7.0_147-icedtea(或 1.7.0_04 用于 java-7-oracle)
- OpenJDK 运行时环境 (IcedTea7 2.0) (7~b147-2.0-0ubuntu0.11.10.1)
- OpenJDK 64 位服务器 VM(内部版本 21.0-b17,混合模式)
- Linux Mint 12 (lisa) GNOME 3.2.1