我有一个“连接”按钮,它调用内部逻辑进行网络连接 我有这个按钮开始网络连接。
Button connectButton = new Button("Connect");
connectButton.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent e)
{
actiontarget.setText("Successful Connection Test!");
}
});
如何在动作执行期间使用标签“取消”更改按钮标签? 以及如何在按钮标签为“取消”时取消操作?也许我需要在按钮标签不同时调用特定操作?
答案 0 :(得分:1)
您可以使用以下逻辑扩展您的代码段。没试过,但我认为它应该有效,即使我建议使用注射。
private final String CONNECT = "connect";
private final String DISCONNECT = "disconnect";
Button connectButton = new Button(CONNECT);
connectButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e)
{
if (connectButton.getText().equals(CONNECT)) {
do_something();
actiontarget.setText(DISCONNECT);
} else {
do_something_else();
actiontarget.setText(CONNECT);
}
}
});
另一个想法是使用ToggleButton
:
在你的FXML中:
<ToggleButton fx:id="btnConnect" alignment="CENTER" maxHeight="1" maxWidth="1" onAction="#actionClickedConnectBtn" text="connect"/>
在您的代码中:
@FXML
public void actionClickedConnectBtn(ActionEvent event) {
if (btnConnectGpsd.isSelected()) {
do_something();
} else {
do_something_else();
}
}
答案 1 :(得分:0)
您可以使用布尔标志来指示单击按钮时要执行的操作;如果标志为true,则执行取消操作并将标志设置为false,将按钮的文本设置为“Connect”。如果该标志为false,则执行连接操作并将标志设置为true,将按钮的文本设置为“取消”。