java中ComboBox的鼠标激发

问题描述

java中ComboBox的ItemStateChanged事件是在item有变化时触发,同时也包括在初始化(addItem)数据时触发。请问有没有哪位大牛知道怎样判断ComboBox仅在鼠标按下改变item时触发?

解决方案

解决方案二:
搬运了一下,http://bbs.csdn.net/topics/310017621
解决方案三:
谢谢你。我试过了,还是不行。ItemStateChanged会在addItem时触发。我只需要在鼠标点击时才触发,addItem时不触发。
解决方案四:
我觉得1楼应该能解决你的问题了,只要在发生事件时加个判断就可以了importjava.awt.*;importjava.awt.event.*;importjava.util.Random;importjavax.swing.*;publicclassone{publicstaticvoidmain(Stringargs[]){JFramejf=newJFrame();finalJComboBox<Integer>jbo=newJComboBox<>();jbo.addItem(newInteger(1));jbo.addItemListener(newItemListener(){publicvoiditemStateChanged(ItemEvente){//某项被选择时,触发业务逻辑if(e.getStateChange()==ItemEvent.SELECTED){System.out.println("某项被选择");}}});JButtonjb=newJButton("添加项");jb.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){//每次单击都会使JComboBox添加项,但是不会触发选择逻辑inti=newRandom().nextInt(100);System.out.println(i);jbo.addItem(newInteger(i));}});jf.add(jbo,BorderLayout.NORTH);jf.add(jb,BorderLayout.CENTER);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.pack();jf.setVisible(true);}}

解决方案五:
当一个值改变时会同时触发DESELECTED先再SELECTED后。因此我们或许能通过判断,如果当前只发生了SELECTED而没有DESELECTED可能就是刚添加的瞬间呢。不太可能itemStateChange事件的DESELECTED/SELECTED运行在两个不同的线程中吧?

时间: 2024-11-16 12:10:57

java中ComboBox的鼠标激发的相关文章

java中解决组件重叠的问题(例如鼠标移动组件时)

java中解决组件覆盖的问题!      有时候在移动组件的时候会出现两个组件覆盖的情况,但是你想让被覆盖的组件显示出来或者不被覆盖!在设计GUI时已经可以定义组件的叠放次序了(按摆放组件的先后顺序). 真正麻烦的是响应哪个组件,这就要创建一个链表,把组件对象按顺序存起来,响应事件时扫描这个链表,按 链表中的先后顺序选择响应组件对象.      所以要想满足自己的需求,那么在添加组件的时候就要注意顺序就好了!      另外如果不想用上面的方法,那么你就采用JLayeredPane这个类,分层面

剖析Java中的事件处理与异常处理机制_java

一.事件处理其实,由事件处理这个名字自然就想到MFC中的消息响应机制,就我的体会,它们应该算是南桔北枳的情形吧,我怀疑Java中的事件处理这个"新瓶"应是装的MFC中的消息响应这个"旧酒".     所谓的"事件"即如键盘按键.鼠标点击等这类由动作或什么导致某个状态改变并需要对这个改变作相应响应的这类改变.我们可以将Java中的事件分为按钮.鼠标.键盘.窗口.其它事件这几大类.    事件处理模型  1.   基于继承的事件处理模型(JDK1.0

Java中窗口关闭事件。

问题描述 Java中窗口关闭事件. 程序代码如下: package com.packageTemp; import java.awt.event.*; import javax.swing.*; import java.awt.*; public class MouseAdapterTest { JFrame f=null; JButton btn=null; public static void main(String[] args) { new MouseAdapterTest(); } /

java i o流 文本框-JAVA中初始化问题,代码在中的变量不能被初始化

问题描述 JAVA中初始化问题,代码在中的变量不能被初始化 我创建了一个按钮,给按钮一个鼠标监听器.按下按钮会获得一个文本区的字符串给masage,当我在其他包中调用getMasage方法,得到的字符串是123而不是文本区的字符串. import java.awt.Color;import java.awt.event.MouseEvent; import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JT

java中对象调用方法返回一个对象的问题

问题描述 java中对象调用方法返回一个对象的问题 例如session.createQuery(hql); 那么这条语句返回的对象属于哪个类呢,如何判断呢? 解决方案 ctrl加鼠标点击createQuery,会有返回方法,或者你在通过session点的时候也可以看到返回方法. 解决方案二: 按住ctrl点击方法,自己去看方法的返回值. 解决方案三: 在java中将一个对象的所有方法打印出来java中远程对象方法调用中的安全策略问题java中返回局部对象问题 解决方案四: 事实上他返回的还是qu

java子菜单消失-java中窗体设计的JMenuBar子菜单的问题

问题描述 java中窗体设计的JMenuBar子菜单的问题 JMenu baseDate=new JMenu("基础数据维护"); //menuBar.add(baseDate); //toolBar.add(menuBar); //baseDate.setHideActionText(false); JMenuItem readMana=new JMenuItem("读者信息管理"); JMenuItem bookMana=new JMenuItem("

事件-java中的键盘监听器失效问题

问题描述 java中的键盘监听器失效问题 package com.tarena.swing; import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent; import javax.swing.JFrame;import javax.swing.JPanel; public class Test

java swing中的弹窗-Java 中如何控制弹出窗口的关闭,类似于QQ的天气的弹窗

问题描述 Java 中如何控制弹出窗口的关闭,类似于QQ的天气的弹窗 本人新手,我想做一个就类似于QQ的天气的弹窗得东西,谁帮我完善一下后面的代码 我的想法是:鼠标移动到label上弹出一个窗口,移出这个label后几秒内判断鼠标移动是否到了这个窗口上,如没有就关闭这个窗口. package com.frame; import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridBagConstraints;

如何在java中使用sikuli进行自动化测试

很早之前写过一篇介绍sikuli的文章.本文简单介绍如何在java中使用sikuli进自动化测试. 图形脚本语言sikuli   sikuli IDE可以完成常见的单击.右击.移动到.拖动等鼠标操作,java引用sikuli-script.jar同样可以执行这些常见的鼠标操作,因此即可方便的编写java实现识别图片并模拟点击/拖动目标控件. sikuli-script.jar:http://download.csdn.net/download/hqd1986/4557974 将sikuli-sc