java - 如何在选择 JList 中的新项目时添加事件监听器?网 bean

标签 java netbeans

我想在每次选择新项目时更新一些字段。我尝试过使用 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/

相关文章:

java - 将 Zeromq 添加到 Github 上的现有 Java Gradle 项目

java - 如何覆盖 OpenJPA 中的 persistence.xml 属性

java - 使用 Java 的 Netbeans : set all methods to static

java - 将 NetBeans 配置为在函数参数之前、之后和之间有空格

php - Netbeans将 “function print()”标记为语法错误

java - JTabbedPane 缩进

java - 将某些 org.apache.log4j 日志消息分流到特定日志文件

java - 有任何 Spring 条件注释,其条件取决于特定变量的值吗?

java - Eclipse 在导出的 jar 中保留有关断点的信息?

Java 2D API : Null Pointer Exception