2017-02-22 8 views
0

JTablesが2つある場合にのみ問題が発生します。 TableBTableAに聞き取り、TableAに適用された変更に基づいてコンテンツを変更します。セル編集中にキーを押したときにJTable編集が機能しない

TableBを指定しないと、TableAは正常に動作します。セルの編集中に下矢印を押すと、下のセルにフォーカスが移動し、セルの内容が強調表示され、ユーザーはセルの内容全体を変更できます。 stopEditing()TableA(良い)でトリガされたセルの編集中に下向き矢印を押すと、画像内TableB

は、 TableBは、それが自身のデータをだ TableAと更新の変更が通知されます。この時点で、フォーカスは TableAで失われています(不良)。 TableAは、この段階で、編集段階で下のセルにフォーカスを移動する必要があります。

私は経由TableAにバックフォーカスを獲得しようとしている:

TableA.requestFocusInWindow(); 
TableA.setSelectedCell(TableA.getSelectedRow(), getEditableColumn()); 

問題が選択されている細胞であるが、だけでなく、選択された編集段階ですることになっています。

私は、試してみました:

TableA.editCellAt(TableA.getSelectedRow(), getEditableColumn()); 

をしかし、上記の行は、何もしていないようでした。

TableBのサイズ変更/再塗りつぶしがフォーカスや動作に影響しないようにするにはどうすればよいですか?TableA

+0

より良いヘルプをお寄せいただくには、問題を示す有効な[mcve]を投稿してください。混乱が少なく、より良い回答が得られます。 – Frakcool

答えて

0

セルを編集中に下向きの矢印を押すと、TableA(正常)でEditEditing()が起動され、TableBはTableAの変更を通知され、それ自身のデータを更新します。

TableModelListenerを使用して、テーブル内のデータの変更をリッスンします。

チェックアウト:JTable -> TableModeListener簡単な例をご紹介します。この例では、同じテーブルのデータを更新するので、他のテーブルのTableModelを更新するには、そのテーブルを変更する必要があります。

+0

私は現在、TableModelListenerを使って他のテーブルを変更しています。 – user1144251

+0

@ user1144251、問題を示す 'MCVE'を数時間前に投稿してもらったのですか?あなたはあなたがしているかもしれないし、していないかもしれないことを推測し続けることができません。 – camickr

関連する問題