私はJTable
を持っています。ユーザーが押したときにどの行と列が選択されているかを知りたいと入力します。この情報はどのように入手できますか?Enterを押したときにJTableのどの部分が選択されているかを知るにはどうすればよいですか?
0
A
答えて
-1
これをテーブルに追加します。 rowClicked
とcolClicked
の2つのint
個のグローバルがあります。それにKeyListener
を追加し、あなたがイベントを登録するには、キーボードを使用しての話をする場合は、選択したセルを見つけなければならない
table.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e)
{
rowClicked = rowAtPoint(e.getPoint());
colClicked = columnAtPoint(e.getPoint());
}
public void mouseClicked(MouseEvent e)
{
rowClicked = rowAtPoint(e.getPoint());
colClicked = columnAtPoint(e.getPoint());
}
});
を行くために良いことがあります。次のコードを使用して、選択したセルを見つけることができます。実際には、セル選択モードに依存します。
public void getSelectedCells()
{
if (getColumnSelectionAllowed() && ! getRowSelectionAllowed())
{
// Column selection is enabled
// Get the indices of the selected columns
int[] vColIndices = getSelectedColumns();
}
else if (!getColumnSelectionAllowed() && getRowSelectionAllowed())
{
// Row selection is enabled
// Get the indices of the selected rows
int[] rowIndices = getSelectedRows();
}
else if (getCellSelectionEnabled())
{
// Individual cell selection is enabled
// In SINGLE_SELECTION mode, the selected cell can be retrieved using
setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
int rowIndex = getSelectedRow();
int colIndex = getSelectedColumn();
// In the other modes, the set of selected cells can be retrieved using
setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
// Get the min and max ranges of selected cells
int rowIndexStart = getSelectedRow();
int rowIndexEnd = getSelectionModel().getMaxSelectionIndex();
int colIndexStart = getSelectedColumn();
int colIndexEnd = getColumnModel().getSelectionModel().getMaxSelectionIndex();
// Check each cell in the range
for (int r = rowIndexStart; r < = rowIndexEnd; r++)
{
for (int c = colIndexStart; c < = colIndexEnd; c++)
{
if (isCellSelected(r, c))
{
// cell is selected
}
}
}
}
}
1
インプリメンテントa TableModelListener。 tableChanged()メソッドのTableModelEventは、変更の元となった行と列を示します。
1
すべてのSwingコンポーネントは、アクションを使用してキーストロークを処理します。 Enterキーのデフォルトのアクションは、セル選択を1行下に移動することです。この動作を変更する場合は、デフォルトのアクションをカスタムアクションに置き換える必要があります。
アクションを置き換える簡単な説明については、Key Bindingsを参照してください。
関連する問題
- 1. JTableで行を選択するにはどうすればよいですか?
- 2. JTable内のどのセルが選択されたかをどのようにして判断できますか?
- 3. Enterを押したときにループを終了するにはどうすればいいですか?
- 4. JTable(スイング)で現在選択されている行をプログラムで選択解除するにはどうすればよいですか?
- 5. 選択したテキストがリンクかどうかをテストするにはどうすればよいですか?
- 6. ユーザーがMVVMでEnterキーを押したときにSilverlightでTABキーを押す方法をシミュレートするにはどうすればよいですか?
- 7. GTK +どのラジオボタンが選択されているかはどのようにして確認できますか?
- 8. UIImagePickerControllerのソースタイプをユーザーが選択できるようにするにはどうすればいいですか?
- 9. PythonアプリケーションがGAEにデプロイされたときのタイムスタンプを知るにはどうすればよいですか?
- 10. jqueryでどのラジオボタンが選択されているかを知るには?
- 11. Enterキーを押したときにすべてのクリックをキャプチャできるアプリケーションを作成するにはどうすればよいですか?
- 12. メソッドがどのライブラリに含まれているかを知るにはどうすればよいですか?
- 13. javascriptでどのチェックボックスが選択されているかに基づいて隠しフォームフィールドを追加するにはどうすればよいですか?
- 14. DBGrid:行が選択されないようにするにはどうすればいいですか?
- 15. fb:likeボタンが自分のページで既に押されているかどうかを確認するにはどうすればいいですか?
- 16. Pythonを使用して画像の一部を選択するにはどうすればよいですか?
- 17. どのJAXP実装が使用されているか、どのJAXP実装がロードされたかを知るにはどうすればよいですか?
- 18. TableLayoutでどのテキストが押されたかを知るには
- 19. ユーザーがボタンを押したときにUIをリセットするにはどうすればよいですか?
- 20. knockoutjsとテンプレートでは、ユーザーがenterを押したときに入力の値を取得するにはどうすればよいですか?
- 21. tabactivityから呼び出されたときに、ソフトキーボードが子アクティビティのボトムバーを押さないようにするにはどうすればよいですか?
- 22. 指定したラジオボタンが選択されている場合、DropDownListが必須かどうかを確認するにはどうすればいいですか?
- 23. MySQL:ランダムに選択された行の50%を更新するにはどうすればよいですか?
- 24. ファイル入力にファイルが選択されているかどうかをJQueryを使って検出するにはどうすればよいですか?
- 25. テーブルから選択し、選択されていない他のすべてのエントリを削除するにはどうすればよいですか?
- 26. ユーザーがHOMEページにいるときにナビゲーションバーの "HOME"リンクが選択されるようにするにはどうすればよいですか?
- 27. チェックボックスのコレクションを選択するにはどうすればよいですか?
- 28. ボタンを押したように見えるようにするにはどうすればいいですか?
- 29. スクラッチで作成されたリストからアイテムを選択するにはどうすればよいですか?
- 30. 戻るボタンを押したときのアクティビティを再開するにはどうすればよいですか?
@Userでは、KeyListenerはセルのイベントをキャプチャしません。 – jzd
リスナーの場合は2 * -1、選択したセルを収集する場合は+1 – kleopatra