私は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. ボタンが押されたときにチェックボックスが選択されているかどうかを確認する
- 3. JTable内のどのセルが選択されたかをどのようにして判断できますか?
- 4. ウェブサイトの選択した部分をiframeに表示するにはどうすればよいですか?
- 5. Enterを押したときにループを終了するにはどうすればいいですか?
- 6. 選択したテキストがリンクかどうかをテストするにはどうすればよいですか?
- 7. vue-resourceを介してvuejsの「選択」項目が選択されたときにajaxリクエストを送信するにはどうすればよいですか?
- 8. JTable(スイング)で現在選択されている行をプログラムで選択解除するにはどうすればよいですか?
- 9. 必須ラジオボタンが選択またはチェックされていないときにエンドユーザに選択/チェックを促すにはどうすればよいですか?
- 10. WPFでセルが選択されているときに、DataGridセル内のTextBoxを選択するにはどうすればよいですか?
- 11. UIImagePickerControllerのソースタイプをユーザーが選択できるようにするにはどうすればいいですか?
- 12. GTK +どのラジオボタンが選択されているかはどのようにして確認できますか?
- 13. PythonアプリケーションがGAEにデプロイされたときのタイムスタンプを知るにはどうすればよいですか?
- 14. ユーザーがMVVMでEnterキーを押したときにSilverlightでTABキーを押す方法をシミュレートするにはどうすればよいですか?
- 15. 選択したセルより下の範囲を選択するにはどうすればよいですか?
- 16. DataFrameに分散した複数の列を選択するにはどうすればよいですか?
- 17. jstree:直接の親が選択されていない選択されたノードの値を合計するにはどうすればよいですか?
- 18. 選択オプションが選択されているときにフォームフィールドのジャンプを停止するにはどうすればよいですか?
- 19. jqueryでどのラジオボタンが選択されているかを知るには?
- 20. 選択したアイコンをselect2の選択ボックスに表示するにはどうすればよいですか?
- 21. Enterキーを押したときにすべてのクリックをキャプチャできるアプリケーションを作成するにはどうすればよいですか?
- 22. メソッドがどのライブラリに含まれているかを知るにはどうすればよいですか?
- 23. JavaScriptを使用せずに、選択フィールドがフォーカスされている間にEnterキーをフォームに送信するにはどうすればよいですか?
- 24. セルが選択されているときにUIViewの背景色が消えないようにするにはどうすればよいですか?
- 25. javascriptでどのチェックボックスが選択されているかに基づいて隠しフォームフィールドを追加するにはどうすればよいですか?
- 26. どのJAXP実装が使用されているか、どのJAXP実装がロードされたかを知るにはどうすればよいですか?
- 27. DBGrid:行が選択されないようにするにはどうすればいいですか?
- 28. fb:likeボタンが自分のページで既に押されているかどうかを確認するにはどうすればいいですか?
- 29. カメラがプレーヤーの後ろにいるかどうかをユーザーが選択できるようにするにはどうすればよいですか?
- 30. XPathを使用してリンクの内部テキストを選択するにはどうすればよいですか?
@Userでは、KeyListenerはセルのイベントをキャプチャしません。 – jzd
リスナーの場合は2 * -1、選択したセルを収集する場合は+1 – kleopatra