如何讓jtable失去選中行狀態

Q::一個jtable佈局在一個jframe中,鼠標選中了table中的某行數據,現在我想在鼠標點擊其他位置(jtable以外的位置)時,table中處於選中狀態的數據行選中狀態被取消。 如何實現啊?

A::1、如果你點擊的其它位置是一個可以獲得焦點的組件,那麼就會觸發JTable焦點丟失事件,丟失焦點時可以將JTable的選擇狀態清除
table.addFocusListener(new FocusListener(){
  public void focusGained(FocusEvent e) {}
  public void focusLost(FocusEvent e) {
   if (!e.isTemporary()) {
     table.clearSelection();
   }
  }
});

2、如果單擊的地方是窗體空白處,該處無法獲取焦點,那麼可以通過添加JFrame的鼠標監聽事件,如果窗體被點擊,那麼將table選擇狀態清除

frame.addMouseListener(new MouseAdapter(){
 public void mouseClicked(MouseEvent e) {
   table.clearSelection();
 }
});

 

個人看法及過去的實現方法:不讓其丟失選中狀態,只改變其選中顏色。一般改淡或改爲白色。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章