在TableView JavaFX 2.2中获取/设置切换按钮状态

时间:2013-10-09 16:28:33

标签: javafx-2 tableview

我正在使用TableView来显示一些数据。样本表如下图所示:

Editable TableView

只有第二列中的项目可以编辑。第三列包含一个ToggleButton,当单击“编辑”按钮时,它基本上显示TextField。

我想要的是在以下事件处理函数中切换相应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
                }
            }
        });

我已经尝试了我最好的水平以获得所选行中相应的编辑按钮对象,但没有任何帮助,我找不到任何相关的文章。

这是可以实现的吗?如果是这样,怎么办呢。

1 个答案:

答案 0 :(得分:0)

那么,如果您希望能够编辑文本字段的按钮isSelected,我是否理解正确?那么为什么不在控制器中获取TextFieldToggleButton,将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" />

那会有帮助吗?