0

我想将焦点传递给 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();
         }
    }
}
4

1 回答 1

2

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

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

另请注意,焦点单元格不是通常意义上的 focusOwner。相反,它是 column- 和 rowSelection 模型的主导,通常具有视觉线索,例如比其他的更厚/不同的边框。

于 2012-10-02T13:30:31.243 回答