显示在标签上选择的值



itemListener在此处实现,下面的代码只是部分。在这里,我需要从列表中的选定项目显示在标签上。此代码不起作用。感谢您的帮助。

public void itemStateChanged(ItemEvent ie)
{
    String data = objectOfList.getSelectedItem();
    objectOfLabel.setText("selected item: " + data);
}

您想将项目侦听器添加到combobox中,当用户选择或取消选择项目时。

https://docs.oracle.com/javase/7/docs/api/java/java/awt/awt/event/itemlistener.html#itemstatemstatechanged(java.awt.event.itememevent(

我写了一个小型演示,您可以用作参考:

public static void main(String[] args) {
    JComboBox<String> comboBox = new JComboBox<>();
    comboBox.addItem("item1");
    comboBox.addItem("item2");
    JLabel label = new JLabel();
    comboBox.addItemListener(new ItemListener() {
        @Override
        public void itemStateChanged(ItemEvent e) {
            label.setText("selected item: " + comboBox.getSelectedItem());
        }
    });
    JPanel panel = new JPanel();
    panel.add(label);
    panel.add(comboBox);
    JFrame frame = new JFrame();
    frame.add(panel);
    frame.pack();
    frame.setVisible(true);
}

它不起作用,因为事件调度线程(Java GUI线程(正在忙于执行actionPerformed()方法中的代码。因此,您可以将代码放入 actionPerformed()方法中的线程,然后将更新标签。

public void actionPerformed(ActionEvent e) {
    Thread thread = new Thread(new Runnable() {
        @Override
        public void run() {
            String data = objectOfList.getSelectedItem();
            objectOfLabel.setText("selected item: " + data);
        }     
    });
    thread.start();
}

相关内容

  • 没有找到相关文章

最新更新