什么是 JavaFX Alert OK 按钮的 fx:id?
What is fx:id of JavaFX Alert OK Button?
我使用 TestFX 框架来测试我的 javaFX 应用程序。
我这样测试我的应用程序:
@Test
public void shouldClickOnDeletMarkerButton() {
FxRobot bot = new FxRobot();
bot.robotContext();
bot.clickOn("#deleteMarkerButton");
bot.clickOn("javafx.scene.control.Alert.CANCEL_BUTTON"); //This doesn't work.
}
我想让他点击JavaFX Alert Dialogs的确定按钮,但是我没有找到fx:id。
JavaFX 警报确定按钮的 fx:id 是什么?
编辑:我解决了我的问题,FxRobot 知道 "read",这就足够了:
@Test
public void shouldClickOnDeletMarkerButtonWhenAnyMarkerAsBeenCreated() {
bot.robotContext();
bot.clickOn("#deleteMarkerButton");
bot.clickOn("OK"); //Target text / Target Button / ...
}
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane fx:controller="sample.Controller" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<Button text="Click me!" fx:id="button" onAction="#clickAction" BorderPane.alignment="CENTER"/>
</BorderPane>
将 fx:id
值分配给元素(如 Button 控件的代码所示)会在文档的命名空间中创建一个变量,您可以从代码的其他地方引用该变量。
@KaluNight,你的解决方案没问题,但只适用于英文本地化。
更好地使用 ID。事实上 Alert
没有为自己的按钮定义 fx:id
,但我们可以这样做:
Button okButton = (Button) alert.getDialogPane().lookupButton(ButtonType.OK);
okButton.setId("my custom id");
我使用 TestFX 框架来测试我的 javaFX 应用程序。 我这样测试我的应用程序:
@Test
public void shouldClickOnDeletMarkerButton() {
FxRobot bot = new FxRobot();
bot.robotContext();
bot.clickOn("#deleteMarkerButton");
bot.clickOn("javafx.scene.control.Alert.CANCEL_BUTTON"); //This doesn't work.
}
我想让他点击JavaFX Alert Dialogs的确定按钮,但是我没有找到fx:id。
JavaFX 警报确定按钮的 fx:id 是什么?
编辑:我解决了我的问题,FxRobot 知道 "read",这就足够了:
@Test
public void shouldClickOnDeletMarkerButtonWhenAnyMarkerAsBeenCreated() {
bot.robotContext();
bot.clickOn("#deleteMarkerButton");
bot.clickOn("OK"); //Target text / Target Button / ...
}
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane fx:controller="sample.Controller" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<Button text="Click me!" fx:id="button" onAction="#clickAction" BorderPane.alignment="CENTER"/>
</BorderPane>
将 fx:id
值分配给元素(如 Button 控件的代码所示)会在文档的命名空间中创建一个变量,您可以从代码的其他地方引用该变量。
@KaluNight,你的解决方案没问题,但只适用于英文本地化。
更好地使用 ID。事实上 Alert
没有为自己的按钮定义 fx:id
,但我们可以这样做:
Button okButton = (Button) alert.getDialogPane().lookupButton(ButtonType.OK);
okButton.setId("my custom id");