如果让JComboBox点击事件之外的代码获得事件里面的信息

我想让外面的代码也能实时获得box的内容,也就是每点击一次就变一次,但是实在不懂怎么实现,谢谢

img

img

JComboBox<String> choice = new JComboBox<String>();
        choice.setBounds(20, 1, 81, 21);
        choice.setFont(new Font("微软雅黑 Light", Font.PLAIN, 13));
        choice.addItem("ID");
        choice.addItem("商品名称");
        frm_drop.getContentPane().add(choice);
        choice.addItemListener(new ItemListener(){
            public void itemStateChanged(ItemEvent e) {
                switch ((String)choice.getSelectedItem()) {
                    case "ID":
                        
                        break;
                    case "商品名称":
                        
                        break;
                    default:
                        break;
                }
            }
        });

定义一个全局的变量比如 String selected = null; 当选择了checkBox后,在itemStateChanged方法中,将选择的值赋值给selected 然后在其他地方需要用到的时候使用selected 进行判断即可

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7525460
  • 这篇博客也不错, 你可以看下重写一个实现自动匹配输入更改下拉框选项的JComboBox类
  • 除此之外, 这篇博客: 下拉列表框JComboBox的简单使用中的 所在包 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •   java.swingx.JComboBox
    
  • 以下回答由chatgpt基于相关博客总结生成:

    可以使用类似全局变量的方式,将JComboBox的选项信息保存在某个字段或属性中,在需要使用的时候直接调用即可。具体步骤如下:

    1. 定义一个类(如下例中的MyComboBox类),该类继承自JComboBox。在该类中添加一个成员变量(如下例中的selectedItem),用于保存选中的选项。并添加一个事件监听器(如下例中的addItemListener()方法),在选项发生变化时更新该成员变量的值。

    2. 在需要使用选项的地方,创建一个MyComboBox对象,在该对象上直接调用selectedItem字段即可获取选中的选项值。

    示例代码如下:

    import javax.swing.JComboBox;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    
    public class MyComboBox extends JComboBox {
    
        private Object selectedItem;
    
        public MyComboBox(Object[] items) {
            super(items);
            addItemListener(new ItemListener() {
                @Override
                public void itemStateChanged(ItemEvent e) {
                    if (e.getStateChange() == ItemEvent.SELECTED) {
                        selectedItem = getSelectedItem();
                    }
                }
            });
        }
    
        public Object getSelectedItem() {
            return selectedItem;
        }
    }
    
    // 在需要使用的地方
    MyComboBox comboBox = new MyComboBox(new Object[]{"A", "B", "C"});
    Object selectedItem = comboBox.getSelectedItem();
    

    在上面的代码中,创建了一个名为MyComboBox的类,该类继承自JComboBox。在该类中添加了selectedItem成员变量,用于保存选中的选项值。同时添加了一个事件监听器,在选项发生变化时更新该成员变量的值。

    在其它地方需要使用选项值时,创建一个MyComboBox对象,通过调用其getSelectedItem()方法即可获取选中的选项值。注意,在选项发生变化之前调用该方法得到的是null。