Java 在Swing中的jTable第一行转移焦点
我想将焦点传递到JTable的第一行。我不能使用editCellAt(行,列)方法,因为我不想允许用户更改表的内容。changeSelection(行、列、false、false)方法也不能正常工作Java 在Swing中的jTable第一行转移焦点,java,swing,jtable,Java,Swing,Jtable,我想将焦点传递到JTable的第一行。我不能使用editCellAt(行,列)方法,因为我不想允许用户更改表的内容。changeSelection(行、列、false、false)方法也不能正常工作 private void txtRawMaterial(java.awt.event.KeyEvent evt) //txtRawMaterial is textfield { if (evt.getKeyCode()==KeyEvent.VK_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();
}
}
}
请给我建议一些将焦点转移到第一排的方法
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();
}
}
}
我有文本字段和表格。最初,我的控件位于textfield。若我按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();
}
}
}
焦点(作为组件的JTable)和选择(行/列)这两个概念不一定相关,如果您想要两者都实现,则必须调用单独的方法来实现这两个概念:
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();
}
}
}
table.requestFocus();
table.changeSelection(0, 0, false, false);
还请注意,聚焦单元不是通常意义上的焦点所有者。相反,它是列选择模型和行选择模型的先导,通常有一个视觉线索,比如比其他模型更厚/不同的边框。+1表示区别。另请参见引用的UIManager默认值。
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();
}
}
}