ホームページ >Java >&#&チュートリアル >すべて選択/なしコントロールを JTable ヘッダーに追加するにはどうすればよいですか?

すべて選択/なしコントロールを JTable ヘッダーに追加するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-19 12:19:10959ブラウズ

How to Add a Select All/None Control to a JTable Header?

JTable のヘッダーにコントロールを埋め込む方法

JTable のヘッダーにコントロールを挿入すると、列を簡単に管理できますブール列のチェックボックスをすべて選択するか、まったく選択しないなどのデータ。ここでは、JTable ヘッダーで適切に動作するコントロールの必要性に対処する包括的なアプローチを示します。

SelectAllHeader クラスを使用した実装

SelectAllHeader クラスは JToggleButton を拡張し、TableCellRenderer を実装して、指定されたブール列のチェックボックスを制御するトグル ボタンを作成します。トグル ボタンをクリックすると、その列のすべてのチェックボックスが選択状態または選択解除状態に設定されます。

class SelectAllHeader extends JToggleButton implements TableCellRenderer {

    private static final String ALL = "✓ Select all";
    private static final String NONE = "✓ Select none";
    // ...

    public SelectAllHeader(JTable table, int targetColumn) {
        // ...
    }

    @Override
    public Component getTableCellRendererComponent(
        JTable table, Object value, boolean isSelected,
        boolean hasFocus, int row, int column) {
        return this;
    }
    // ...
}

使用法

このコントロールを使用するには、次のコマンドを追加します。指定された列へのヘッダー レンダラとして使用します:

TableColumn tc = table.getColumnModel().getColumn(BOOLEAN_COL);
tc.setHeaderRenderer(new SelectAllHeader(table, BOOLEAN_COL));

追加機能

SelectAllHeader クラスは、列内のチェックボックスの状態をチェックし、それに応じて自身の状態を切り替えます。また、マウス イベントも処理して、目的の列のみでトグル ボタンがクリックされるようにします。

結論

SelectAllHeader クラスを利用すると、ウェルを簡単に埋め込むことができます。 JTable のヘッダーにある -behaved コントロール。ブール列のすべてのチェックボックスを選択または選択解除する便利な方法を提供します。このアプローチは柔軟で、チェックボックス レンダラーを使用する任意の列に適用できます。

以上がすべて選択/なしコントロールを JTable ヘッダーに追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。