コントロールを JTable の JTableHeader に統合するにはどうすればよいですか?
ブール型の列を持つ JTable では、デフォルトのレンダラーはJチェックボックス。個々のセルはユーザーの操作に基づいて簡単に選択できますが、すべてのチェックボックスを簡単に選択または選択解除すると有利になる場合があります。
行儀の良い問題への対処
井戸JTableHeader 内の動作するコントロールは、マウス イベントに応答し、視覚的なフィードバックを提供し、ヘッダーとシームレスに調整する必要があります。
解決策: SelectAllHeader
SelectAllHeader クラスは JToggleButton を拡張し、TableCellRenderer を実装します。テーブルヘッダーにチェックボックスを追加し、特定の列内のマウスクリックに応答します。チェック ボックスの状態は、対応する列のすべてのチェックボックスの現在の状態に基づいて、「すべて選択」と「何も選択しない」の間で切り替わります。
実装の詳細
SelectAllHeaderコンストラクターはターゲットのテーブルと列をパラメータとして受け取ります。テーブル ヘッダーと一貫したビジュアル スタイルを適用し、チェック ボックスの状態を切り替えるための ItemListener を追加し、マウス クリックを処理してモデルとの同期を維持するための Mouse リスナーと TableModel リスナーを追加します。
使用法
SelectAllHeader を統合するには、テーブルの列モデルから目的の列を取得し、そのヘッダー レンダラを次のインスタンスに設定します。 SelectAllHeader.
利点
このソリューション:
以上がJTable ヘッダーに「すべて選択」チェックボックスを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。