我想将焦点转移到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();
}
}
}
答案 0 :(得分:2)
焦点(JTable作为组件的角色)和选择(行/列)的两个概念不一定相关,如果你想要两个你必须调用单独的方法来达到两者:
table.requestFocus();
table.changeSelection(0, 0, false, false);
另请注意,聚焦单元格不是通常意义上的focusOwner。相反,它是column- rowselection模型和rowSelection模型的引领,通常具有比其他模型更粗/不同边框的视觉线索。