鼠标事件越野车

时间:2013-10-09 04:48:09

标签: java swing mouseevent jlist mouselistener

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

2 个答案:

答案 0 :(得分:2)

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

请查看How to write a List Selection ListenerHow to use lists了解详情

答案 1 :(得分:0)

  

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

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

  

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

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

  

但我只想点击鼠标,即使用户不能使用箭头键进行更改

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