【发布时间】:2020-05-02 11:35:46
【问题描述】:
我正在使用 swing 创建一个 JList,我可以显示和选择多个项目,也可以向其中添加一个新元素。但是,当我选择列表的第一个元素并在顶部添加一个新元素时,我得到了两个选定元素(旧元素和新元素),但是当我将 选择模式更改为单选 em> 它工作正常,是否可以防止这种自动选择,而只是保持旧的选择使用多间隔选择模式? 我使用了这个link,其中包含一个使用 DataEventListner 的示例,但我没有成功找到解决方案。请问有什么帮助吗? 这是我的清单:
public static void main(String args[]) {
String labels[] = { "A", "B", "C", "D", "E", "F", "G", "H" };
JFrame frame = new JFrame("Selecting JList");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final DefaultListModel model = new DefaultListModel();
for (int i = 0, n = labels.length; i < n; i++) {
model.addElement(labels[i]);
}
JList jlist = new JList(model);
jlist.setSelectionMode(
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
JScrollPane scrollPane1 = new JScrollPane(jlist);
frame.add(scrollPane1, BorderLayout.CENTER);
JButton jb = new JButton("add F");
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
model.add(0, "First");
}
});
frame.add(jb,BorderLayout.SOUTH);
frame.setSize(640, 300);
frame.setVisible(true);
}
【问题讨论】: