1

Jtable から 2 つの列を削除する必要があります。

私が行った場合:

try { 
jTable5.setModel(dtm);
jTable5.removeColumn(jTable5.getColumnModel().getColumn(5));
jTable5.removeColumn(jTable5.getColumnModel().getColumn(6));
jTable5.setVisible(true);
} 
catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Error");
}

すると「エラー」が表示されます。

しかし、もしそうなら:

try { 
jTable5.setModel(dtm);
jTable5.removeColumn(jTable5.getColumnModel().getColumn(5));
jTable5.setVisible(true);
} 
catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Error");
}

エラーは表示されず、テーブルは正しく表示されるように設定されています。removeColumn()メソッドを2回使用してモデルから2つの列を削除できないようです。

removeColumnSelectionInterval() があることに気付きました。これを使用する必要がありますか?

何か案は?

4

2 に答える 2

2

まず、「エラー」を表示するだけでなく、例外を利用する必要がありますe.getMessage()

try { 
jTable5.setModel(dtm);
jTable5.removeColumn(jTable5.getColumnModel().getColumn(5));
jTable5.removeColumn(jTable5.getColumnModel().getColumn(6));
jTable5.setVisible(true);
} 
catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Error " + e.getMessage());
e.printStackTrace();//shows more detailed stack trace
}

そして使用e.printStackTrace()...

第2に、最初の列を削除すると、他の列がシフトされると思います。そのため、列5を削除すると、列6がシフトされたため、列6がなくなり、現在も5列があり、それがエラーの原因です。

だからワイルドな推測は使用することです

jTable5.removeColumn(jTable5.getColumnModel().getColumn(5));
jTable5.removeColumn(jTable5.getColumnModel().getColumn(5));

はい、5を2回削除します。

于 2014-05-07T05:57:48.280 に答える
2

7 つの列があり、インデックスでそれらを削除するとします。インデックス カウント -1 を削除すると、サイズより大きいインデックス値を使用できなくなります。への変更

jTable5.removeColumn(jTable5.getColumnModel().getColumn(6));
jTable5.removeColumn(jTable5.getColumnModel().getColumn(5));
于 2014-05-07T05:59:24.807 に答える