Java:在不同界面样式下JPopupMenu与鼠标事件mousePressed表现的结果不同!

今天遇到一个郁闷的事儿:

在一个JFrame上放了一个JList元件,这个JList元件添加了鼠标事件:

mouseReleased、mousePressed ...

其中,在mouseReleased中,主要显示一个弹出式菜单。在mousePressed 中输入用户按下的是左键还是右键。

但我发现一个奇怪的事情,

当我把当前界面设置为:
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); 
当弹出式菜单显示出来,再接下右键,这个时候无法触发mousePressed事件。

改为其它几个样式也不行,只有设置为默认的:
UIManager.setLookAndFeel("javax.swing.plaf.basic.BasicLookAndFeel");
只有这样,在弹出式菜单显示出来时,再按下右键,也能触发mousePressed事件。

这难道是BUG吗?这都什么年代了,不会还出现这么低级的Bug吧?

回想起当年使用jdk1.3的时候,JTextArea老是无法设置文本同时为粗斜体,当时老是找不到问题出在哪,后来才知道原来是个Bug,晕死了。

这次,不知是什么原因引起的。

2009-10-23

上一篇:ActivityManagerService原理&源码


下一篇:Opencv step by step - 鼠标事件