我想在每次选择新项目时更新一些字段。我尝试过使用 Focus Gained 事件监听器和值更改监听器,但当选择更改时我无法更改它。
最佳答案
有一个简单的示例,说明如何使用 addListSelectionListener(ListSelectionListener Listener)
方法来实现此目的。在我提供的示例中,重写方法只是将列表中选定元素的标签复制到 JTextField 字段 - 当然,您可以实现在更改选择时需要执行的行为:
1) 使用 Java 7 或更低版本时:
JTextField field = new JTextField(7);
JList<String> list = new JList<>(new String[] {"a", "b", "c"});
list.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
List<String> values = ((JList<String>)(e.getSource())).getSelectedValuesList();
field.setText(""); // clears previous entry from the JTextField
for(String value : values) {
field.setText(field.getText() + value + " ");
}
}
});
2) 使用Java 8或以上版本时的addListSelectionListener()
代码:
@Override
list.addListSelectionListener(e -> {
List<String> values = ((JList<String>)(e.getSource())).getSelectedValuesList();
field.setText("");
values.forEach(value -> {
field.setText(field.getText() + value + " ");
});
});
关于java - 如何在选择 JList 中的新项目时添加事件监听器?网 bean ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48195333/