我正在使用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
}
}
});
我已经尝试了我最好的水平以获得所选行中相应的编辑按钮对象,但没有任何帮助,我找不到任何相关的文章。
这是可以实现的吗?如果是这样,怎么办呢。
答案 0 :(得分: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" />
那会有帮助吗?