社区
Java SE
帖子详情
怎样用代码触发JComboBox的ItemEvent事情
Yanbin_Q
2007-09-30 02:51:39
我的JComboBox,想像 Button.doClick()那样触发,代码应该是怎么写
我试图用
firePropertyChange()但不知道应该改变什么属性
对刚添加了一项的JComboBox用setSelectedIndex(0)方法也会出错
...全文
260
4
打赏
收藏
怎样用代码触发JComboBox的ItemEvent事情
我的JComboBox,想像 Button.doClick()那样触发,代码应该是怎么写 我试图用 firePropertyChange()但不知道应该改变什么属性 对刚添加了一项的JComboBox用setSelectedIndex(0)方法也会出错
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuyu622
2007-10-04
打赏
举报
回复
顶了....
qybao
2007-10-03
打赏
举报
回复
可以不用继承,用反射就行了
for example
public void eventTest() {
try {
Class cls = JComboBox.class;
Method method = cls.getDeclaredMethod("fireItemStateChanged", new Class[]{ItemEvent.class});
method.setAccessible(true);
JComboBox cmb = new JComboBox(new String[]{"aa", "bb"});
ItemEvent event = new ItemEvent(cmb, 0, "aa", ItemEvent.SELECTED);
method.invoke(cmb, new Object[]{event}); //触发ItemEvent事件
} catch (Throwable e) {
e.printStackTrace();
}
}
Yanbin_Q
2007-10-03
打赏
举报
回复
也是个办法,为了使用JComboBox的受保护的fireItemStateChanged(ItemEvent)必须继承自JComboBox
mq612
2007-10-01
打赏
举报
回复
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TestMain extends JFrame {
private MyComboBox box = null;
public TestMain() {
super("窗口");
JButton a = new JButton("触发按钮");
JPanel pane = new JPanel();
String [] arr = {"aaaaa", "bbbbb", "ccccc"};
box = new MyComboBox(arr);
box.setEditable(true);
pane.add(box);
pane.add(a);
box.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) {
System.out.println(e.getItem());
}});
a.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
box.select(new ItemEvent(box, ItemEvent.ITEM_LAST, box.getSelectedItem(), ItemEvent.SELECTED));
}});
this.getContentPane().add(pane);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300, 200);
this.setVisible(true);
}
public static void main(String[] args) {
new TestMain();
}
}
class MyComboBox extends JComboBox{
public MyComboBox(Object [] o) {
super(o);
}
public void select(ItemEvent ie){
this.fireItemStateChanged(ie);
}
}
201711671222《Java程序设计》第九周学习总结
本文介绍了Swing组件的基本概念,如Component和Container类,以及如何使用这些组件创建GUI界面。详细讲解了JFrame、JMenu、JMenu
Item
、ImageIcon等组件的用途,并探讨了事件处理机制,包括事件源、监视器和各种事件类型如Action
Event
、
Item
Event
等。
201711671204 《java程序设计》第九周学习总结
本文详细介绍Java Swing组件体系,包括基本组件如JTextField、JButton等,容器类如JFrame,以及事件处理机制。探讨如何创建窗口、菜单、对话框,并实现事件监听和响应。
技术转移机构如何通过AI技术提升项目评估的客观性?.docx
技术转移机构如何通过AI技术提升项目评估的客观性?
CAD+说明书丝网印花机系统设计
CAD+说明书丝网印花机系统设计
Ui-Reference-Catalog-Fallback-Playbook-v1.0-原创源码与文档.zip
本资源为原创离线开发工具,提供完整可运行源码、README、MIT LICENSE、原创与授权声明、自动化测试及真实运行截图。解压后安装 Node.js 18+,运行 npm test 验证,再按 README 执行示例命令。适合前端开发、工程实践与教学演示,不含第三方受限源码、模型权重、品牌素材或账号密钥。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章