【发布时间】:2015-01-22 06:18:26
【问题描述】:
我使用场景构建器使用 fxml 创建了一个示例 fx 应用程序。 我已经在场景构建器上映射了一个动作处理程序并将其写入 java 控制器类。通过单击继续按钮,屏幕将更改为另一个屏幕。但是有时候屏幕会卡住,用户会多次点击继续按钮,所以系统会崩溃。
我在动作控制器的开头添加了按钮的禁用属性,但它没有发生。如何阻止多个事件点击事件或一次点击禁用按钮?
@FXML
public void onBtnProceedClick() {
btnProceed.setDisable(true);
// other part of method.
}
FXML
<Button fx:id="btnProceed" maxWidth="1.7976931348623157E308" mnemonicParsing="false"
onAction="#onBtnProceedClick" prefHeight="40.0" prefWidth="-1.0"
styleClass="btnProceed" text="" GridPane.columnIndex="1"
GridPane.rowIndex="0"
/>
【问题讨论】:
-
请同时发布您的控制器和 fxml。这有点模糊。
-
已添加按钮的 fxml。
-
我没有理由明白为什么您发布的代码不起作用。请贴出Controller类的所有相关部分。
-
实际上我在我的控制器方法的其余部分调用自动提款机。所以应用程序将等待某个时间分配金额。我认为这就是按钮禁用不起作用的原因....这是窗口服务调用.
-
您以这种方式阻止了您的 GUI。但一个快速的解决方案是在“// 方法的其他部分”中检查禁用状态。并且只有在 disbled 为 false 时才继续。