0

JTableの1行目にフォーカスを移したい。ユーザーがテーブルの内容を変更できるようにしたくないため、 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 の) と選択 (行/列の) の 2 つの概念は、必ずしも関連しているわけではありません。両方が必要な場合は、別々のメソッドを呼び出して両方に到達する必要があります。

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

また、フォーカスされたセルは、通常の意味での focusOwner ではないことに注意してください。代わりに、通常、他のモデルよりも太い/異なる境界線などの視覚的な手がかりを持っているのは、列と行の両方のモデルのリードです。

于 2012-10-02T13:30:31.243 に答える