0

我有以下 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);
4

2 回答 2

2

AMouseListener适合该任务,而是使用ListSelectionListener

查看如何编写列表选择侦听器如何使用列表了解更多详细信息

于 2013-10-09T04:51:21.347 回答
0

单击列表中的项目时,它应突出显示所选项目

这是默认行为,所以我不确定你为什么要这样做。

但是,如果我按得太快,它实际上不会在第一次单击时选择列表中的下一个项目。

可能是因为您没有生成mouseClicked事件。只有在同一像素位置生成 mousePressed/mouseReleased 事件时才会生成 mouseClicked 事件。也许鼠标在轻微移动。尝试将您的代码添加到mousePressed.

但我只想要鼠标点击,即使用户使用箭头键来改变它也不应该发生

这是一个糟糕的用户界面。用户应控制是否要使用鼠标或键盘。高级用户将使用键盘,初学者将使用鼠标。

于 2013-10-09T15:51:48.393 回答