按钮执行期间更改标签

时间:2014-02-02 16:41:26

标签: javafx javafx-2 javafx-8

我有一个“连接”按钮,它调用内部逻辑进行网络连接 我有这个按钮开始网络连接。

Button connectButton = new Button("Connect");
connectButton.setOnAction(new EventHandler<ActionEvent>()
        {

            @Override
            public void handle(ActionEvent e)
            {
                actiontarget.setText("Successful Connection Test!");
            }
        });

如何在动作执行期间使用标签“取消”更改按钮标签? 以及如何在按钮标签为“取消”时取消操作?也许我需要在按钮标签不同时调用特定操作?

2 个答案:

答案 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,将按钮的文本设置为“取消”。