在Swing中的jTable的第一行转移焦点

时间:2012-10-02 12:05:18

标签: java swing jtable

我想将焦点转移到JTable的第一行。我不能使用editCellAt(row,column)方法,因为我不想让用户更改表的内容。 changeSelection(row,column,false,false)方法也无法正常工作。

请建议我将焦点转移到第一行的方法。


我有文字和表格。最初我的控制是在文本字段。如果我按ENTER键,控制应该在表的第一行。我提供了以下代码。请帮帮我。

private void txtRawMaterial(java.awt.event.KeyEvent evt) //txtRawMaterial is textfield
{      
    if (evt.getKeyCode()==KeyEvent.VK_ENTER) 
    {
         if(table.getRowCount()>0)    //table is jTable
         {
                table.requestFocus();
         }
    }
}

1 个答案:

答案 0 :(得分:2)

焦点(JTable作为组件的角色)和选择(行/列)的两个概念不一定相关,如果你想要两个你必须调用单独的方法来达到两者:

table.requestFocus();
table.changeSelection(0, 0, false, false);

另请注意,聚焦单元格不是通常意义上的focusOwner。相反,它是column- rowselection模型和rowSelection模型的引领,通常具有比其他模型更粗/不同边框的视觉线索。