2

Java Swingx フレームワークを使用しています。オブジェクトに 4 つの列がありDefaultTableModelます。3 つの列のみを表示したい。しかし、計算には 4 つすべてが必要です。

実際のデータ モデル

S.No. | ID | GDC ID | Decsription

表に表示したいもの

S.No.| GDC ID | Decsription

レンダリングから 1 つの列のみを非表示または省略できますか? 私を案内してください。

4

5 に答える 5

4

モデルを調整したり、その列を非常に小さくしようとしたりする必要はありません。JTableこのための組み込み機能があります:removeColumnメソッド。そのメソッドのjavadocに記載されているように

このJTableの列の配列からaColumnを削除します。注:このメソッドは、モデルからデータの列を削除しません。表示を担当していたTableColumnを削除するだけです。

また、次のメソッドの存在にも注意してください。

ビュー()の列の順序と列数はモデルの列の順序とJTableは異なる可能性があるため、ビューとモデルを切り替えるにはこれらのメソッドが必要です。

于 2012-08-30T12:07:50.677 に答える
4
于 2012-08-30T11:41:42.837 に答える
2

幅を 0 に設定すると、非表示にすることができます。

_table.getColumn("ID").setPreferredWidth(0);
_table.getColumn("ID").setMinWidth(0);
_table.getColumn("ID").setWidth(0);
_table.getColumn("ID").setMaxWidth(0);
于 2012-08-30T11:37:04.073 に答える
1

これを試して、単一の列を削除してください:

myTableModel = new DefaultTableModel();
myTableModel.setColumnIdentifiers(new Object[]{"S.No.", "ID", "GDC ID", "Decsription"});
JTable myTable = new JTable(myTableModel);

// remember to save the references
TableColumn myTableColumn0 = guiLoteryNumbersTable.getColumnModel().getColumn(0);
TableColumn myTableColumn1 = guiLoteryNumbersTable.getColumnModel().getColumn(1);
TableColumn myTableColumn2 = guiLoteryNumbersTable.getColumnModel().getColumn(2);
TableColumn myTableColumn3 = guiLoteryNumbersTable.getColumnModel().getColumn(3);

myTable.getColumnModel().removeColumn(myTableColumn1);

次に、順序を維持して列を再度表示します。

// 1- remove all the existent columns
myTable.getColumnModel().removeColumn(myTableColumn0);
myTable.getColumnModel().removeColumn(myTableColumn2);
myTable.getColumnModel().removeColumn(myTableColumn3);

// 2- add all the columns again in the right order
myTable.getColumnModel().addColumn(myTableColumn0);
myTable.getColumnModel().addColumn(myTableColumn1);
myTable.getColumnModel().addColumn(myTableColumn2);
myTable.getColumnModel().addColumn(myTableColumn3);

申し訳ありませんが、それが私が知っている最善の方法です。

于 2015-01-27T12:49:29.553 に答える
0

これを実現するには、 getValueAt 、 getColumnCount を操作します。

たとえば、getColumnCount を 3 として指定します。

および on getValueAt - 列インデックスがスキップされた列の上にある場合にスキップする

JTable は最初に getColumnCount と getRowCount を呼び出し、セルごとに getValueAt を呼び出してフェッチします。

注: これは無視して、以下の Trashgod によるリンクを参照してください。

于 2012-08-30T11:38:21.237 に答える