3

JTable の列がアルファベット化されていない場合、getSelectedRows() を使用して行の値を問題なく取得できます。ただし、ユーザーが列名をクリックし、その列で行がアルファベット順に並べ替えられている場合、getSelectedRows() は現在選択されている行ではなく、アルファベット順に並べ替える前に最初にあった行を返します。

列がアルファベット順になっているときに、現在選択されている行を取得するにはどうすればよいですか?

4

3 に答える 3

3

このコードを使用すると、視覚的に選択した正しい行が得られます。

int[] row_indexes=jTable1.getSelectedRows();
for(int i=0;i<row_indexes.length;i++){
  domain=jTable1.getValueAt(row_indexes[i], 1).toString();  
  System.out.println(this, domain);
}
于 2011-06-17T05:17:00.887 に答える
2
private void selectRow() {

//retrieving the selected row index

int row = jTable1.getSelectedRow();

//if a single row is selected from the table, take each cell values into the controls

 if (jTable1.getRowSelectionAllowed())
 {

   selectedJobId = Integer.parseInt(jTable1.getValueAt(row, 0).toString());

   jTextField_JobName.setText(jTable1.getValueAt(row, 1).toString());

   jTextField_ExpDate.setText(jTable1.getValueAt(row, 3).toString());

   jComboBox_JobCat.setSelectedItem(jTable1.getValueAt(row, 4).toString());

   jComboBox_JobSubCat.setSelectedItem(jTable1.getValueAt(row, 5).toString());

 }

}
于 2012-11-16T04:32:52.170 に答える
1

少し遅いかもしれませんが、とにかくこれを投稿しようと思いました。

JTable メソッド convertRowIndexToModel(row) を見てください。行番号がソートされていないかのように、行番号を返します。

于 2009-05-13T14:56:10.840 に答える