0

我正在使用 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
                }
            }
        });

我已经尽力在所选行中获取相应的编辑按钮对象,但没有任何帮助,我找不到任何相关文章。

这是可以实现的吗?如果是这样怎么做。

4

1 回答 1

0

那么,我是否理解正确,如果isSelected您希望按钮能够编辑文本字段?那么为什么不在您的控制器中获取TextField和,将一个 方法附加到您的按钮,然后将文本字段更改为可编辑。就像是:ToggleButtonOnAction

~控制器:

@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 回答