それぞれ複数の列を持つ複数の JTables があります。各テーブルは、JTabbed ペインの異なるタブに表示されます。これらの列のヘッダー名はテーブル間で同じですが、列の値が異なります。ヘッダーを右クリックして比較を押すことで、すべてのテーブル間でヘッダーを比較できるようにしようとしています。これにより、選択された一致するヘッダーを持つ列のリストを渡しながら、新しい JDialog が開きます。
public void actionPerformed(ActionEvent arg0) {
List<TableColumn> columns = new ArrayList<TableColumn>();
for (int i = 0; i < tables.size(); i++) {
String tableName = tabPane.getTitleAt(i);
JTable tempTable = (JTable) tables.get(tableName);
// Get column at the channel name used
TableColumn col = tempTable.getColumn("chosen header");
// Add the column to the list of channel columns
columns.add(col);
}
new comparisonDialog(UI.getFrame(), "chosen header",
columns);
}
これは正しく機能しているように見え、テーブルのすべての共通列を新しい JDialog に渡されるリストに格納します。新しい JDialog でこれらの列を含むテーブルを表示するときにも機能するようです。
JTable table = new JTable();
for (TableColumn col : passedColumnList) {
col.setHeaderValue(col.getHeaderValue());
table.addColumn(col);
}
ただし、正しい列が表示されます。
- 列のデータがすべて欠落している
- 列のサイズを変更すると、元のテーブルの列のサイズが変更されるため、列は元のテーブルにリンクされているようです!
ここで簡単なものが欠けていますか?