2013-10-09 105 views
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); 

回答

0

在點擊列表中的它應該的項目突出顯示所選項目

這是默認行爲,s o我不確定你爲什麼這樣做。

但是,如果我按得太快,它實際上不會在第一次點擊時選擇列表上的下一個項目。

可能是因爲您沒有生成mouseClicked事件。只有在同一像素位置生成mousePressed/mouseReleased事件時,纔會生成mouseClicked事件。也許鼠標稍稍移動。嘗試將代碼添加到mousePressed

,但我只想要鼠標點擊,即使使用箭頭鍵來改變它的用戶不應該發生

這是一個可怕的UI。用戶應該控制他們是否想要使用鼠標或鍵盤。高級用戶將使用鍵盤,初學者將使用鼠標。

+0

mousepressed的作品,謝謝 – BeyondProgrammer

2

一個MouseListener是在適當的任務,而不是使用ListSelectionListener

看看How to write a List Selection ListenerHow to use lists更多細節

+0

所以我應該只是將mouselistenr更改爲ListSelectionListener? – BeyondProgrammer

+0

這將是我的建議...確保您通讀鏈接教程。選擇可以由於任何原因而改變,不僅僅是因爲鼠標點擊 – MadProgrammer

+0

,但我只想要鼠標點擊,即使用戶使用箭頭鍵改變它也不應該發生 – BeyondProgrammer