如何在选择JList中的新项时添加事件侦听器? Netbeans的

时间:2018-01-10 20:11:41

标签: java netbeans

我想在每次选择新项目时更新一些字段。我已经尝试使用Focus Gained事件监听器和值更改的监听器,但是当更改选择时我无法更改它。

1 个答案:

答案 0 :(得分:1)

有一个简单的例子,说明如何使用addListSelectionListener(ListSelectionListener listener)方法实现这一目标。在我提供的示例中,overriden方法只是将列表中所选元素的标签复制到JTextField field - 当然,您可以实现在更改选择时需要执行的行为:

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 + " ");
    });
});