在场景生成器中添加动作

时间:2019-08-11 08:52:17

标签: java javafx scenebuilder

我最近使用的是“场景”构建器,我想向按钮添加单击动作。但是,我没有看到用于添加点击操作的下拉菜单。我在Mac OS平台上并使用IntelliJ。提供了屏幕截图

enter image description here

下面提供了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>

我重新下载了已安装的场景构建器,但这不能解决问题。如何向“场景”构建器添加动作?

2 个答案:

答案 0 :(得分:1)

使用Scenebuilder时,您需要牢记的几点。

  1. 在根元素中指定控制器。可以按照以下步骤完成。 enter image description here
  2. 如果不指定控制器,选择操作将不会有任何下拉列表。您首先需要指定控制器。如果没有,请不要继续。

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

    @FXML私有void buttonAction(ActionEvent事件){   //您的代码 }

  4. 在找到 onAction 下拉菜单之前。确保已在控制器类中创建了该方法(在下拉列表中查找)。

答案 1 :(得分:0)

我必须手动编辑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菜单来设置我在这里没有的控制器。

enter image description here

解决方案

在Scene Builder应用程序中(比IntelliJ Interface)打开sample.xml文件,此问题已解决。看来IntelliJ中可能存在错误或兼容性问题。

这是我第一次使用JavaFX,因此不确定确切的问题是什么,但是,我找到了一种解决方法。