在标签上显示列表选择值
Display list selected value on label
这里实现了ItemListener,下面的代码只是其中的一部分。在这里,我需要从列表中选择的项目显示在标签上。此代码无效。
谢谢你的帮忙。
public void itemStateChanged(ItemEvent ie)
{
String data = objectOfList.getSelectedItem();
objectOfLabel.setText("selected item: " + data);
}
它不起作用,因为事件调度线程(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();
}
您想向组合框添加一个项目侦听器,每次用户选择或取消选择项目时都会调用其 itemStateChanged() 方法。
我写了一个小demo,你可以参考一下:
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);
}
这里实现了ItemListener,下面的代码只是其中的一部分。在这里,我需要从列表中选择的项目显示在标签上。此代码无效。 谢谢你的帮忙。
public void itemStateChanged(ItemEvent ie)
{
String data = objectOfList.getSelectedItem();
objectOfLabel.setText("selected item: " + data);
}
它不起作用,因为事件调度线程(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();
}
您想向组合框添加一个项目侦听器,每次用户选择或取消选择项目时都会调用其 itemStateChanged() 方法。
我写了一个小demo,你可以参考一下:
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);
}