Javafx 2 获取/设置TableView JavaFX2.2中的ToggleButton状态

Javafx 2 获取/设置TableView JavaFX2.2中的ToggleButton状态,javafx-2,tableview,Javafx 2,Tableview,我正在使用TableView显示一些数据。样本表如下图所示: 只有第2列中的项目是可编辑的。第三列包含一个ToggleButton,它在单击“编辑”按钮时基本上显示文本字段 我想要的是在下面的事件处理程序函数中切换相应ToggleButton的状态(请参见下面代码段中的注释) textField.setOnKeyReleased(新的EventHandler(){ @凌驾 公共无效句柄(KeyEvent t){ if(t.getCode()==KeyCode.ENTER){ committed

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

只有第2列中的项目是可编辑的。第三列包含一个ToggleButton,它在单击“编辑”按钮时基本上显示文本字段

我想要的是在下面的事件处理程序函数中切换相应ToggleButton的状态(请参见下面代码段中的注释)

textField.setOnKeyReleased(新的EventHandler(){
@凌驾
公共无效句柄(KeyEvent t){
if(t.getCode()==KeyCode.ENTER){
committedit(textField.getText());
//在此处切换编辑按钮的状态
}else if(t.getCode()==KeyCode.ESCAPE){
取消编辑();
//在此处切换编辑按钮的状态
}
}
});
我已经尽了最大努力在所选行中获取相应的编辑按钮对象,但没有任何帮助,我也找不到任何相关文章


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

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


那会有帮助吗?

谢谢你的回复。是的,你正确地理解了这个问题。但是,这些编辑按钮是为每一行动态创建的。它们不是在设计时创建的,因此此解决方案没有帮助。我在网格中显示按钮的方法与本文类似
<ToggleButton fx:id="togglebutton" alignment="CENTER" onAction="#actionEditField" text="Edit" />