0

以下は私のコードの抜粋です。JTableがあります。DefaultCellEditorを拡張して、独自のエディターを作成しました。セルにキーリスナーとマウスリスナーを追加しました。JButtonもあります。JButtonをクリックすると、JTableの最初のセルを編集モードにします。このために、requestFocusとeditCellAt(0,0)を使用しました。私はこのコードをactionperformedに入れました。

public void actionPerformed(ActionEvent e)
{
     System.out.println("action performed");

     if(e.getSource().equals(btn))
     {
    oTable.requestFocus();
    oTable.setRowSelectionInterval(0, 0);
    oTable.editCellAt(0, 0);
     }
}

これにより、カーソルが最初のセルに配置されます。しかし、私が何かを入力しても、重要なイベントは発生しません!注:マウスを使用してセルをクリックしてから入力すると、キーイベントが発生します。しかし、私はこの余分なクリックをしたくありません。

4

1 に答える 1

6

私のために働くようです。たぶんあなたは以下を試すことができます:

table.editCellAt(0, 0);
table.getEditorComponent().requestFocus();
于 2012-06-21T12:26:22.167 に答える