0

データベースからの結果を示す JTable があります

for(VoertuigenModel m : vModel.selectVoertuigen())
        {   
            if(m.getStatus().equals("Beschikbaar"))
            {
                tableModelVoertuigen.addRow(new Object[]{
                        m.getMerk(),
                        m.getType(),
                        m.getKleur(),
                        m.getStatus(),
                        m.getId()
                });
            }
        }

そして、これはこのように見えます

Jテーブルの例

選択された行からどのようにAUTO-IDを取得できますか?

たとえば、3 行目を選択したい場合は、変数に「4」を設定します。

4

1 に答える 1

1

選択された行からどのようにAUTO-IDを取得できますか?

  • 使用ListSelectionListenerに追加JTable SelectionModel()addListSelectionListener

  • 選択イベントで、を使用して、テーブル ビューの選択された行インデックスを取得しますtable.getSelectedRow()。選択データは、実際には"view"、テーブル モデルではなく (並べ替えまたはフィルター処理後に表示されるテーブル データ) で選択されたセルを表します。列のソート、フィルタリング、またはユーザー操作中に、JTableの変換メソッド を使用して選択座標を変換する必要があります。

    1. convertRowIndexToModel(row): ビューの行インデックスを下位にマップしますTableModel
    2. convertColumnIndexToModel(column): ビューの列インデックスを下位にマップしますTableModel
  • の列モデルを呼び出しgetColumnIndex("AUTO-ID")て、列インデックスを取得しますJTable

     table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
    
            @Override
            public void valueChanged(ListSelectionEvent e) {
    
                int row =  table.convertRowIndexToModel(table.getSelectedRow());
                int col = table.getColumnModel().getColumnIndex("AUTO-ID");
    
                int auto_id = (Integer) table.getModel().getValueAt(row, col);
                     // assuming that `m.getId()` is returning `int` 
                    //while adding with addRow() function
            }
        });
    

注: :複数の行を選択していて、それらを操作したい場合は、int[] getSelectedRows()の機能を使用します。JTable

于 2013-11-12T22:34:44.233 に答える