我有以下JList代码。单击列表中的项目时,它应突出显示所选项目。但如果我按得太快,它实际上不会在第一次点击时选择列表中的下一个项目。我该怎么解决这个问题?
MouseListener mouseListener = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 1) {
String selectedItem = (String) jl.getSelectedValue();
if(selectedItem == "Page One"){
System.out.print("Page one");
}
}
}
};
jl.addMouseListener(mouseListener);
答案 0 :(得分:2)
MouseListener
适合该任务,而是使用ListSelectionListener
请查看How to write a List Selection Listener和How to use lists了解详情
答案 1 :(得分:0)
单击列表中的项目时,应突出显示所选项目
这是默认行为,所以我不确定你为什么要这样做。
但如果我按得太快,它就不会在第一次点击时选择列表中的下一个项目。
可能是因为您没有生成mouseClicked
事件。只有在同一像素位置生成mousePressed / mouseReleased事件时,才会生成mouseClicked事件。也许鼠标略微移动。尝试将代码添加到mousePressed
。
但我只想点击鼠标,即使用户不能使用箭头键进行更改
这是一个糟糕的用户界面。用户应控制是否要使用鼠标或键盘。高级用户将使用键盘,初学者将使用鼠标。