【发布时间】:2012-05-13 15:28:16
【问题描述】:
在最大化 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 项目。
红点表示在按下File 并按住鼠标按钮后我必须将鼠标移动到New 的区域(或多或少)。
我在使用“右键单击上下文菜单”时观察到相同的行为,例如在 JFreeChart 中右键单击图表时。
我以为是JDK的问题,因为我使用的是Oracle的JDK,但是安装OpenJDK后我得到了同样的结果。
有人观察到这种奇怪的行为吗?还是我遗漏了一些明显的东西?
我用:
- 1.7.0_147-icedtea(或 java-7-oracle 的 1.7.0_04)
- 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
【问题讨论】:
-
在我看来,这只是 Java 7 的一个错误,没有别的,尝试回到任何以前的版本,它不存在,Java 7 有很多错误,就像你刚才提到的那个:(