程序添加JComboBox的item也能触发itemStateChanged事件吗

程序添加JComboBox的item也能触发itemStateChanged事件吗

直接看实例:

Java代码  

  1. package share;  
  2.   
  3. import java.awt.EventQueue;  
  4. import java.awt.GridBagConstraints;  
  5. import java.awt.GridBagLayout;  
  6. import java.awt.Insets;  
  7. import java.awt.event.ItemEvent;  
  8. import java.awt.event.ItemListener;  
  9.   
  10. import javax.swing.JButton;  
  11. import javax.swing.JComboBox;  
  12. import javax.swing.JFrame;  
  13. import javax.swing.JPanel;  
  14. import javax.swing.border.EmptyBorder;  
  15.   
  16. import com.string.widget.util.ValueWidget;  
  17.   
  18. public class TestJComboBox extends JFrame {  
  19.   
  20.     private JPanel contentPane;  
  21.     private JComboBox<String> comboBox;  
  22.   
  23.     /** 
  24.      * Launch the application. 
  25.      */  
  26.     public static void main(String[] args) {  
  27.         EventQueue.invokeLater(new Runnable() {  
  28.             public void run() {  
  29.                 try {  
  30.                     TestJComboBox frame = new TestJComboBox();  
  31.                     frame.setVisible(true);  
  32.                 } catch (Exception e) {  
  33.                     e.printStackTrace();  
  34.                 }  
  35.             }  
  36.         });  
  37.     }  
  38.   
  39.     /** 
  40.      * Create the frame. 
  41.      */  
  42.     public TestJComboBox() {  
  43.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  44.         setBounds(100, 100, 450, 300);  
  45.         contentPane = new JPanel();  
  46.         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));  
  47.         setContentPane(contentPane);  
  48.         GridBagLayout gbl_contentPane = new GridBagLayout();  
  49.         gbl_contentPane.columnWidths = new int[]{0, 0, 0};  
  50.         gbl_contentPane.rowHeights = new int[]{0, 0};  
  51.         gbl_contentPane.columnWeights = new double[]{1.0, 0.0, Double.MIN_VALUE};  
  52.         gbl_contentPane.rowWeights = new double[]{0.0, Double.MIN_VALUE};  
  53.         contentPane.setLayout(gbl_contentPane);  
  54.           
  55.         comboBox = new JComboBox<String>();  
  56.         GridBagConstraints gbc_comboBox = new GridBagConstraints();  
  57.         gbc_comboBox.insets = new Insets(0, 0, 0, 5);  
  58.         gbc_comboBox.fill = GridBagConstraints.HORIZONTAL;  
  59.         gbc_comboBox.gridx = 0;  
  60.         gbc_comboBox.gridy = 0;  
  61.         contentPane.add(comboBox, gbc_comboBox);  
  62.           
  63.         JButton btnAddItem = new JButton("add item");  
  64.         GridBagConstraints gbc_btnAddItem = new GridBagConstraints();  
  65.         gbc_btnAddItem.gridx = 1;  
  66.         gbc_btnAddItem.gridy = 0;  
  67.         contentPane.add(btnAddItem, gbc_btnAddItem);  
  68.           
  69.           
  70.         comboBox.addItemListener(new ItemListener()  
  71.         {  
  72.             @Override  
  73.             public void itemStateChanged(ItemEvent arg0)  
  74.             {  
  75.                 System.out.println("itemStateChanged");  
  76.             }  
  77.         });  
  78.         init222();  
  79.           
  80.     }  
  81.     private void init222(){  
  82.         comboBox.addItem("a");  
  83.         comboBox.addItem("b");  
  84.         comboBox.addItem("c");  
  85.     }  
  86.   
  87. }  

 

启动的时候,控制台打印:

itemStateChanged

说明启动之后,执行了itemStateChanged 方法,说明了触发了itemStateChanged 事件.

总结:程序添加addItem 也能触发itemStateChanged 事件

如何把init222 方法放在comboBox.addItemListener 前就不会触发itemStateChanged 事件

时间: 2024-08-30 19:53:32

程序添加JComboBox的item也能触发itemStateChanged事件吗的相关文章

android中ListView在划屏到底部的时候动态添加ListView的Item实现

ListView中我们可以添加我们自己的adpter,这样我们可以丰富我们的ListView的Item,并且如果我们的ListView很长的时候.如果一下子都显示出来的话,那么我们要通过划屏滚动很长时间才能看到我们要的数据(我们的数据如果在最下边),有时候我们的数据就在前几行,那么我们有必要把全部数据都显示在ListView中么?如果我们的数据是从网络获取,或者通过开的线程,耗时性很长的操作才能返回数据的呢?这就要求我们在没有全部加载必要的情况下部分加载ListView中的内容,通过activi

Windows Phone实用教程:利用Blend为程序添加设计时数据

Blend自诞生那一天起就伴随这开发者如此的评价: 有VS还用Blend干啥,直接码代码就好了. Blend会生成一堆垃圾无用代码,很不爽. 对于这类我只会在心里评价,当你并不真正了解一样事物的情况下,就给这个东西扣帽子,实在很不公平. 作为程序员首先要明白时间的宝贵和效率的重要性,更应了解各种效能工具,Blend便是其中一个,如果你仍然觉得学怎么用Blend纯粹是浪费时间, 那么恭喜你,后面的文章可以忽略了:-) [本文讲述的内容] 使用blend为程序添加设计时的数据. [本文适用的场景]

win8.1怎么把应用程序添加到右键中

  win8.1怎么把应用程序添加到右键中           1.在Win8.1桌面,按WIN+R组合键,然后在打开中输入:regedit 然后确定;   2.打开注册表之后,我们依次展开以下选项:HKEY_CLASSES_ROOT\Directory\Background\shell ; 3.在shell旗下新建"项",例如记事本"NotePad"."QQ".截图工具"SnippingTool",Win8/Win8.1专属

360安全卫士如何将程序添加到信任列表

  360如何添加信任,步骤如下: 一.软件信任. 1.打开360安全安全窗口,单击"木马防火墙"图标. 列表-将程序添加到信任列表"> 2.在360木马防火墙窗口中,单击"信任列表"图标,然后单击下面的"添加信任"按钮. 3.在"打开"窗口找到要添加到信任列表中的程序,选中它后再点"打开"按钮. 4.完成后如图所示.

windows中将绿色程序添加到鼠标右键

windows中将绿色程序添加到鼠标右键 1.绿色软件是很多人的最爱,但是也有一些问题,需要我们来解决,那就是如何将常用的软件添加到鼠标右键,比如,notepad++绿色版的软件,我们想让她能够出现在鼠标右键中,这样当我们遇到一个文件想用notepad++打开时,只要用鼠标右键就可以直接打开了. 2.下面介绍如何把一个程序添加到鼠标右键.主要就是修改注册表来实现的. Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT*shell] [H

在Windows 下把绿色程序添加到鼠标右键的方法

第一.绿色软件是很多人的最爱,但是也有一些问题,需要我们来解决,那就是如何将常用的软件添加到鼠标右键,比如,notepad++绿色版的软件,我们想让她能够出现在鼠标右键中,这样当我们遇到一个文件想用notepad++打开时,只要用鼠标右键就可以直接打开了. 第二.下面介绍如何把一个程序添加到鼠标右键.主要就是修改注册表来实现的. Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT*shell] [HKEY_CLASSES_ROOT*sh

怎么在windows的任务栏上给程序添加一个菜单呢?

问题描述 怎么在windows的任务栏上给程序添加一个菜单呢? 怎么在windows的任务栏上给程序添加一个菜单呢?在任务栏上增加一个菜单条的做法是什么? 解决方案 参考:http://wenku.baidu.com/link?url=4Aneltg4jvM55xkt66rmQwiv5uyilvoigKlY8vEaGT-6pdwnh3NHXrBwtaosVaeVyfqPqX-WS-PBT8EyX6Zet-UaaNpIbxoar9XE4mMUtlm

vb.net 被任务管理器强制关闭的程序触发什么事件?或者如何定义这种事件?谢谢

问题描述 vb.net 被任务管理器强制关闭的程序触发什么事件?或者如何定义这种事件?谢谢 如题,vb.net环境,程序被任务管理器强制关闭时触发什么事件?或者如何定义这种事件?谢谢 解决方案 杀进程没有任何事件,关闭程序触发queryclose closing closed 解决方案二: 强制关闭只能hook API来获取,NtTerminateProcess

vsto 写 excel 外接程序,如何实现鼠标滑过一个单元格时,触发一个事件?

问题描述 vsto 写 excel 外接程序,如何实现鼠标滑过一个单元格时,触发一个事件? vsto 写 excel 外接程序,如何实现鼠标滑过一个单元格时,触发一个事件?