2010-11-16 77 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