簡體   English   中英

在JList中選擇新項目時,如何添加事件偵聽器? Netbeans的

[英]How to add event listener for when a new item in a JList is selected? Netbeans

我想每次選擇一個新項目時更新一些字段。 我曾嘗試使用Focus Gained事件偵聽器和值更改了的偵聽器,但是當選擇更改時我無法更改它。

有一個簡單的示例,您可以使用addListSelectionListener(ListSelectionListener listener)方法實現該addListSelectionListener(ListSelectionListener listener) 在我提供的示例中,重寫方法僅將列表中選定元素的標簽復制到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 + " ");
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM