0

TableView を使用してデータを表示しています。サンプル テーブルを下の図に示します。

編集可能なテーブル ビュー

2 列目のアイテムのみが編集可能です。3 番目の列には、[編集] ボタンがクリックされたときに基本的に TextField を表示する ToggleButton が含まれています。

私が望むのは、次のイベント ハンドラー関数で対応する ToggleButton の状態を切り替えることです (以下のコード スニペットのコメントを参照してください)。

textField.setOnKeyReleased(new EventHandler<KeyEvent>() {
            @Override
            public void handle(KeyEvent t) {
                if (t.getCode() == KeyCode.ENTER) {
                    commitEdit(textField.getText());
                    //Toggle the state of Edit button here
                } else if (t.getCode() == KeyCode.ESCAPE) {
                    cancelEdit();
                    //Toggle the state of Edit button here
                }
            }
        });

選択した行で対応する編集ボタン オブジェクトを取得するために最善を尽くしましたが、何の役にも立たず、関連する記事も見つかりませんでした。

それは達成可能なものですか?もしそうなら、それはどのように行うことができますか。

4

1 に答える 1

0

isSelectedそれで、テキストフィールドを編集できるようにするボタンの場合、正しく理解できましたか? TextFieldコントローラーでと を取得して、ボタンにメソッドをToggleButtonアタッチしOnAction 、テキスト フィールドを編集可能に変更してください。何かのようなもの:

~コントローラー:

@FXML
private ToggleButton togglebutton;

@FXML
private TextField textfield;

@FXML
public void actionEditField(ActionEvent event) {
    if (togglebutton.isSelected()) {
        textfield.setEditable(true);
        ...
    } else {
        ...
        commitEdit(textfield.getText());
        textfield.setEditable(false);
        ...
    }
}

~ Fxml:

<ToggleButton fx:id="togglebutton" alignment="CENTER" onAction="#actionEditField" text="Edit" />

それは役に立ちますか?

于 2013-10-10T08:00:00.850 に答える