3

私のJavafx2アプリケーションでは、1つまたは複数の列を選択する必要TableViewがあります。CheckBoxes

列全体を行ごとのチェックボックス専用にするための多くの答えがありますが、私の場合、ユーザーが行を計算するためのボタンをクリックしたときにチェックされる列のみを選択するために、各列ラベルにチェックボックスを追加したいと思います。

あるのはわかりますがjavafx.scene.control.cell.CheckBoxTableCell<S,T>、テーブルビューの列の選択に使用できますか?

出来ますか ?

アップデート1:

@amruのおかげで、オブジェクトNodeのヘッダーに追加することができTableColumnます。だから私は別の質問があります、選択されたすべての列のインデックスを取得するための最良の方法は何ですか?私に関する限り、私はjavafxapiでも検索します

4

1 に答える 1

4

このコードは、列ヘッダーにチェックボックスを配置します。

column.setGraphic(new CheckBox());

更新:チェックボックスのユーザーデータを列で設定します。後でユーザーがチェックボックスをオンにしたときに取得できます。

EventHandler<ActionEvent> handler = new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent event) {
            CheckBox cb = (CheckBox) event.getSource();
            TableColumn column = (TableColumn) cb.getUserData();
            if (cb.isSelected()) {
                lstClm.add(column);
            } else {
                lstClm.remove(column);
            }
            for (TableColumn clm : lstClm) {
                System.out.println("selected column: " + clm.getText());
            }
        }
    };
    CheckBox cb = new CheckBox();
    cb.setUserData(firstDataColumn);
    cb.setOnAction(handler);
    firstDataColumn.setGraphic(cb);

    cb = new CheckBox();
    cb.setUserData(secondDataColumn);
    cb.setOnAction(handler);
    secondDataColumn.setGraphic(cb);
于 2012-10-30T13:31:54.330 に答える