0

TableColumns を非表示 (非表示) にするには、通常、次のようにします。

TableColumn.setMinWidth(0);
TableColumn.setMaxWidth(0);

または removeColumn メソッド (列) を使用してモデルから削除します。

しかし、実行時には、列を非表示または表示のままにしておく必要があり、最終的にはsetMinWidth (0) および setMaxWidth (0)を使用する方が実用的です。

Ctrlユーザーがテーブルの行を選択して+Cを押してテキスト ファイルに貼り付けると、非表示の列の値がコピーされる可能性があるため、問題が発生します!!!

TransferHandlerを使用して、JComponent の CopyAction を実行しないようにすることで問題を解決できました。TableColumn が JComponent ではない方法は、この方法で解決することはできません。

別の方法として、次のように定義することもできます: (選択行を許可しない JTable)

JTable.setRowSelectionAllowed(false)

テーブル内の行の許可された選択を維持する必要があるため、この最後の解決策は私にとって実行可能ではありません。すべての列からの値のコピーを制限する別の解決策はありますか?

4

1 に答える 1

2

TableColumns を非表示 (非表示) にするには、通常、次のようにします。

TableColumn.setMinWidth(0);
TableColumn.setMaxWidth(0);
  • これは良い方法ではありません。ゼロ サイズで遊んでいます。この列は非表示ではありません。un_natural のサイズしかありません。すべてのマウス & キー イベントに引き続きアクセスできます。

  • あなたはSビューremoveColumn()からする必要がありますJTable

于 2014-01-07T10:51:58.923 に答える