簡體   English   中英

JTable如何觸發事件選擇行或雙擊行

[英]JTable how to fire event selecting a row or double click on a row

我正在使用javax.swing.JTable來顯示數據庫表中的行。 我需要針對兩種不同的情況觸發兩種不同的事件:

  • 選擇至少一個行時(或至少單擊一次行)。
  • 當雙擊某行時。

我已經在堆棧溢出中尋找答案,但是沒有找到令人滿意的答案。 任何想法?

選擇至少一個行時(或至少單擊一次行)。

您應該使用JTableListSelectionModel通過ListSelectionListener監視對行選擇的更改。 當用戶使用鼠標或鍵盤更改選擇或由於某種原因以編程方式更改選擇時,這將通知您

有關更多詳細信息,請參見如何編寫列表選擇偵聽器

當雙擊某行時

您可以檢測到此問題的唯一方法是使用MouseListener 通常,用戶希望單擊鼠標左鍵將執行一項操作,而單擊鼠標右鍵將執行其他操作。

您將要使用SwingUtilities.isLeftMouseButtonSwingUtilities.isRightMouseButton來確定用戶的實際操作。

有關更多詳細信息,請參見如何編寫鼠標偵聽器

您可以將鼠標偵聽器添加到表中,並使用下面的鼠標事件捕獲那里的事件

table.addMouseListener
      (
        new MouseAdapter()
        {
          public void mouseClicked(MouseEvent e)
          {
            if (e.getClickCount() == 2)
            {
            }
            if (e.getClickCount() == 1)
            {
            }
          }
        }
      );
    }

並捕獲選擇事件,您可以使用

table.getSelectionModel().addListSelectionListener(...);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM