在 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 时,您必须牢记一些事项。

  1. 在根元素中指定控制器。它可以按照下面给出的方式完成。
  2. 如果不指定控制器,您将不会获得任何用于选择操作的下拉菜单。您首先需要指定控制器。如果还没有,请不要继续。

  3. 下面给出了创建按钮操作方法的正确方法。

    @FXML private void buttonAction(ActionEvent 事件){ //你的代码 }

  4. 在寻找 onAction 下拉菜单之前。确保您已经在控制器 class 中创建了方法(您正在下拉列表中查找)。