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

时间: 2024-07-29 20:04:01

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

Java Swing界面编程(25)---事件处理:鼠标事件及监听处理

如果想对一个鼠标的操作进行监听,如果鼠标按下.松开等,则可以使用MouseListener接口. package com.beyole.util; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import

Linux文本模式下监听鼠标事件

Linux文本模式下监听鼠标事件,这里是通过gpm这个来实现的,代码如下: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 #include <gpm.h> 5 6 void main(int argc,char **argv) 7 { 8 fd_set readset; 9 Gpm_Event event; 10 Gpm_Connect conn; 11 12 conn.

【JAVA语言程序设计基础篇】--事件驱动程序设计--鼠标事件

点击文字 鼠标拖动 文字会随鼠标拖动 package chapter16; import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import javax.swing.JFrame; import javax.swing.JPanel; @SuppressWarnings("serial

Opencv下图像对鼠标事件的响应

直接上代码: //////////////////////////////////////////////////////////////////////// // // 该程序从文件中读入一幅图像,响应在图片上的左键右键消息 // 并显示点击图像的坐标,然后显示出来. // //////////////////////////////////////////////////////////////////////// #include <stdlib.h> #include <stdi

BCG界面库下的Windows8 UI界面样式www.webui8.com

BCG界面库下的Windows8 UI界面样式(Metro风格)控件主要有以下一些功能: 规则的大块磁贴 支持完整键盘导航 Tile组 标题(Caption) 标题按钮(Caption buttons) 矩形或圆形的磁贴形状 水平("Landscape")和 垂直("Portrait")布局 Tile页头和多行文本 Tile图像 支持数字或标志性徽章 "Live" tiles 自定义颜色和画刷 自定义磁贴 系统独立:由于BCG只是模仿了Windo

Java图形化界面设计——容器(JFrame)

Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构,现在就进入java图形化界面编程. 一.Java基本类(JFC) Java基本类(“JavaFoundationClasses”,JFC),由一些软件包组成.这些软件包主要包括下面一些应用程序接口(API): ·抽象窗口工具集(AWT)(1.1及以上版本). ·Swing构件. ·Java 2D应

二十七、Java图形化界面设计——容器(JFrame)

摘自http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构,现在就进入java图形化界面编程. 一.Java基本类(JFC) Java基本类("JavaFoundationClasses",JFC),由一些软件包组成.这些

java 图形化界面笔记(1)

目录 JFrame窗体................................................................................................. 1 * 方法颜色 * 小节颜色 * 引起注意 一.JFrame  窗体 创建窗体在开发Java应用程序时,通常情况下利用JFrame创建窗口.利用JFrame创建的窗口分别包含一个标题.最小化按钮.最大化按钮和关闭按钮 在利用JFrame创建窗口时,需要设置单击关闭按钮时执行的动作

Java Swing界面编程(24)---事件处理:键盘事件及监听处理

在Swing的事件处理中也可以对键盘的操作进行监听,直接使用KeyListener接口即可. package com.beyole.util; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax