在 Scene Builder 中添加一个动作
Add an action in the Scene Builder
我刚开始使用场景构建器,我想为按钮添加点击动作。但是,我没有看到用于添加点击操作的下拉菜单。我在 Mac OS 平台并使用 IntelliJ。提供截图,
下面提供了sample.fxml
文件,
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.Pane?>
<Pane cache="true" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="445.0" prefWidth="597.0" xmlns="http://javafx.com/javafx/8.0.172-ea" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Button fx:id="btnn" layoutX="228.0" layoutY="33.0" mnemonicParsing="false" text="Button" />
</children>
</Pane>
我重新下载了已安装的场景生成器,但这并没有解决问题。如何向场景构建器添加动作?
我必须手动编辑 sample.fxml
文件才能使下拉菜单可用。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.Pane?>
<Pane cache="true" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="445.0" prefWidth="597.0" xmlns="http://javafx.com/javafx/8.0.172-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.MainController">
<children>
<Button fx:id="btnn" layoutX="228.0" layoutY="33.0" mnemonicParsing="false" onAction="#onPress" text="Button" />
</children>
</Pane>
另一个答案是告知我们可以使用 Document
菜单来设置我这里没有的控制器。
解决方案
通过 IntelliJ 界面在 Scene Builder 应用程序中打开 sample.xml
文件,问题已解决。看来 IntelliJ 中可能存在错误或兼容性问题。
这是我第一次使用 JavaFX,所以不确定确切的问题是什么,但是,我找到了解决方法。
在使用 Scenebuilder
时,您必须牢记一些事项。
- 在根元素中指定控制器。它可以按照下面给出的方式完成。
如果不指定控制器,您将不会获得任何用于选择操作的下拉菜单。您首先需要指定控制器。如果还没有,请不要继续。
下面给出了创建按钮操作方法的正确方法。
@FXML private void buttonAction(ActionEvent 事件){
//你的代码
}
在寻找 onAction 下拉菜单之前。确保您已经在控制器 class 中创建了方法(您正在下拉列表中查找)。
我刚开始使用场景构建器,我想为按钮添加点击动作。但是,我没有看到用于添加点击操作的下拉菜单。我在 Mac OS 平台并使用 IntelliJ。提供截图,
下面提供了sample.fxml
文件,
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.Pane?>
<Pane cache="true" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="445.0" prefWidth="597.0" xmlns="http://javafx.com/javafx/8.0.172-ea" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Button fx:id="btnn" layoutX="228.0" layoutY="33.0" mnemonicParsing="false" text="Button" />
</children>
</Pane>
我重新下载了已安装的场景生成器,但这并没有解决问题。如何向场景构建器添加动作?
我必须手动编辑 sample.fxml
文件才能使下拉菜单可用。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.Pane?>
<Pane cache="true" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="445.0" prefWidth="597.0" xmlns="http://javafx.com/javafx/8.0.172-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.MainController">
<children>
<Button fx:id="btnn" layoutX="228.0" layoutY="33.0" mnemonicParsing="false" onAction="#onPress" text="Button" />
</children>
</Pane>
另一个答案是告知我们可以使用 Document
菜单来设置我这里没有的控制器。
解决方案
通过 IntelliJ 界面在 Scene Builder 应用程序中打开 sample.xml
文件,问题已解决。看来 IntelliJ 中可能存在错误或兼容性问题。
这是我第一次使用 JavaFX,所以不确定确切的问题是什么,但是,我找到了解决方法。
在使用 Scenebuilder
时,您必须牢记一些事项。
- 在根元素中指定控制器。它可以按照下面给出的方式完成。
如果不指定控制器,您将不会获得任何用于选择操作的下拉菜单。您首先需要指定控制器。如果还没有,请不要继续。
下面给出了创建按钮操作方法的正确方法。
@FXML private void buttonAction(ActionEvent 事件){ //你的代码 }
在寻找 onAction 下拉菜单之前。确保您已经在控制器 class 中创建了方法(您正在下拉列表中查找)。