Griffon FXML 按钮文本值被覆盖
Griffon FXML button text value is overwritten
格里芬 2.10.0
FXML:
<Button layoutX="172.0" layoutY="45.0" JavaFXUtils.griffonActionId="click2"
mnemonicParsing="false" text="Test"
prefWidth="200.0"
/>
TestView.groovy:
void initUI() {
builder.application(title: application.configuration['application.title'], name: "settingsWindow",
centerOnScreen: true, resizable: false) {
scene {
def node = loadFromFXML("views/test.fxml")
connectActions(node, controller)
inputx.textProperty().bindBidirectional(model.inputProperty())
fxml node
}
}
}
用文本 "Click2"
显示此按钮
为什么 FXML 中的 text="Test"
配置被 griffonActionId 名称覆盖了?
当我在 FXML 中使用它时有效:
<Button fx:id="btn1" ...
在 TestView.groovy 中:
@FXML private Button btn1
...
btn1.text = 'Test'
这显示:
这是设置按钮文本的正确方法吗?
这是预期的行为。通过 Griffon 操作配置的按钮会将它们的属性绑定到操作属性。默认情况下,按钮的文本绑定到操作的名称。您可以通过在代码中显式设置按钮的文本来覆盖此行为,就像您所做的那样。
格里芬 2.10.0
FXML:
<Button layoutX="172.0" layoutY="45.0" JavaFXUtils.griffonActionId="click2"
mnemonicParsing="false" text="Test"
prefWidth="200.0"
/>
TestView.groovy:
void initUI() {
builder.application(title: application.configuration['application.title'], name: "settingsWindow",
centerOnScreen: true, resizable: false) {
scene {
def node = loadFromFXML("views/test.fxml")
connectActions(node, controller)
inputx.textProperty().bindBidirectional(model.inputProperty())
fxml node
}
}
}
用文本 "Click2"
显示此按钮
为什么 FXML 中的 text="Test"
配置被 griffonActionId 名称覆盖了?
当我在 FXML 中使用它时有效:
<Button fx:id="btn1" ...
在 TestView.groovy 中:
@FXML private Button btn1
...
btn1.text = 'Test'
这显示:
这是设置按钮文本的正确方法吗?
这是预期的行为。通过 Griffon 操作配置的按钮会将它们的属性绑定到操作属性。默认情况下,按钮的文本绑定到操作的名称。您可以通过在代码中显式设置按钮的文本来覆盖此行为,就像您所做的那样。