2016-07-12 34 views
1

ANY行が選択されているかどうかを確認するif文を介してJTableにロジックを追加する方法を解明しようとしています。私は特定の行が選択されているかどうかをチェックする方法を知っていますが、すべての行をチェックする方法を理解できないようです。任意の行が選択されている場合はJTable

if(tbl.isRowSelected(0)){ 

明らかに、特定の行をチェックしています。私も

if(tbl.isRowSelected(0-2000)){ 

のようなものを試してみた

これは動作しませんでしたも私はそれが動作するように期待していませんでした。

これは、ユーザーが行をクリックして「編集」ボタンを押すと、選択した行に関連するデータが多く表示されるようにテーブルを設定しているためです。 (ここではハッシュマップ内で2D配列を使用すると複雑になりますが、まずこの単純な問題を解決する必要があります)。

事前にお世話になりました!

+0

ループが何であるか(つまり、 'for'、' while'など)を知っていますか? –

+0

はいジョニー。私はそれを行うことができますが、それは動的ではありません。そこに何行あるのか分からない。 – jesric1029

+1

['JTable#getSelectedRow()'](https://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html#getSelectedRow%28%29)を使用してみませんか? 'if(table.getSelectedRow()!= -1){...}' –

答えて

3

これは、あなたが任意の行が選択されているかどうかを調べるためにtable.getSelectionModel().isSelectionEmpty()を呼び出すことができますJTable::getSelectionModel()

を使用して取得することができListSelectionModel、で可能でなければなりません。

+0

ありがとうございました。私はこれが最も簡単な方法で私の質問に答えたと信じているので、これを受け入れられた答えとしました。 – jesric1029

2

使用:

table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ 
     public void valueChanged(ListSelectionEvent event) { 
      // do some actions here, for example 
      // print first column value from selected row 
      System.out.println(table.getValueAt(table.getSelectedRow(), 0).toString()); 
     } 
    }); 
2

使用table.getSelectedRow()が選択された行 の指標を返し、getSelectedColumn()選択された列を

を返し、getSelectedRows()はリターンがあります選択された行のインデックス配列

int[] indexs=table_name.getSelectedRows(); 
//all the selected row are here no need to go throw 
//all your rows to see if they are selected or not 
for(int index_row:rows){ 
    //you code here 
} 
関連する問題