2010-11-16 59 views
4

我有JTable和行。默認情況下,第一行被選中並且焦點在其中。我如何取消選擇第一行並將焦點轉移到.addListener(new RowSetListener()也可以在第一行中工作的其他位置。從JTable第一行移除焦點

我已經嘗試:

tableZaposlenciView1.setRowSelectionAllowed(true);   
//tableZaposlenciView1.getSelectionModel().clearSelection(); 
//tableZaposlenciView1.setColumnSelectionInterval(0,0); 
//tableZaposlenciView1.setRowSelectionInterval(false,false);   
tableZaposlenciView1.changeSelection(0,0,false,false); 
tableZaposlenciView1.requestFocus(); 

,但它無法正常工作。

+0

那麼,如果你想改變其他東西而不是(0,0),也許你不應該使用(0,0)作爲changeSelection()的參數,對嗎? – perp 2010-11-16 13:50:09

+0

我可以嘗試12,2,但是是相同的 – senzacionale 2010-11-16 14:46:57

+0

changeSelection(...)對我來說工作得很好。發佈你的SSCCE(http://sscce.org)來證明問題。我們不能一直猜測你可能做什麼或者不可能做什麼。 – camickr 2010-11-16 16:40:33

回答

0

,如果別人有ADF類似的問題,這裏的JTable是解決方案。我通過覆蓋VO impl上的first()來實現這一點。我的問題可以解決。

這派上用場了在許多情況下:

  • 刷新後不選擇(只返回null從第一())
  • 重新選擇一個特定的行後刷新(刷新之前,存儲行鍵後,刷新第()如果存儲的密鑰被發現,導航到該行並返回,從第一個())
  • 找到用戶下一次匹配的行一個工作列表
  • 刷新後去努力避免在VL昂貴詳細處決情況
2

看看JTable的changeSelection()方法。我相信它是做你想做的。

編輯:如果你想明確選擇:

JTable table = ...; 
table.getSelectionModel().clearSelection(); 
+0

我試着tableZaposlenciView1.getSelectionModel()。clearSelection(); – senzacionale 2010-11-16 14:13:50

+0

和tableZaposlenciView1.requestFocus(),但第一行總是被選中,第一行的監聽器不工作。我沒有更多的想法... – senzacionale 2010-11-16 14:14:25

+0

我也嘗試添加焦點的一些其他組件如布爾檢查= panelTabi.requestFocusInWindow();但檢查總是假的 – senzacionale 2010-11-16 14:46:36