linux – Java Swing – 当JFrame最大化时,鼠标指针在上下文菜单上“移位”教程
在最大化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);
}
});
}
}
…我通常可以点击文件(首次点击 – 按,发布) – >新的(第二次点击).但是当我最大化JFrame并单击文件时 – 上下文菜单会立即在鼠标释放时消失.
此外,当我按住鼠标按钮 – 以防止消失 – 我必须进一步移动鼠标以关注新项目.
红点代表区域(或多或少),按下文件并按住鼠标按钮后,我必须将鼠标移动到焦点上.
我在使用“右键单击上下文菜单”时观察到相同的行为,例如右键单击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
解决方法:
是的 – 这是JDK7中的一个错误,如@nIcE cOw所述.
我已经安装了JDK6,我无法重现这个bug.
java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)