当前位置: 首页 > 知识库问答 >
问题:

如何使FXML生成的按钮工作

丁阎宝
2023-03-14
<?import javafx.scene.effect.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>

<SplitPane dividerPositions="0.3996655518394649" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="470.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1">
  <items>
    <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="398.0" prefWidth="145.0">
         <children>
            <TableView layoutY="33.0" prefHeight="323.0" prefWidth="180.0" AnchorPane.bottomAnchor="42.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="33.0">
              <columns>
                <TableColumn prefWidth="77.0" text="Event" />
                <TableColumn prefWidth="101.0" text="Suggested time" />
              </columns>
               <columnResizePolicy>
                  <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
               </columnResizePolicy>
               <effect>
                  <Blend />
               </effect>
            </TableView>
            <Label layoutY="6.0" prefHeight="27.0" prefWidth="90.0" text="Event view">
               <font>
                  <Font size="18.0" />
               </font>
            </Label>
            <Button layoutY="368.0" mnemonicParsing="false" prefHeight="0.0" prefWidth="34.0" text="+">
               <font>
                  <Font name="System Bold" size="14.0" />
               </font>
            </Button>
         </children></AnchorPane>
    <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="398.0" prefWidth="267.0">
         <children>
            <Label layoutY="7.0" prefHeight="27.0" prefWidth="90.0" text="Detail view">
               <font>
                  <Font size="18.0" />
               </font>
            </Label>
            <GridPane layoutX="14.0" layoutY="34.0" prefHeight="120.0" prefWidth="258.0">
              <columnConstraints>
                <ColumnConstraints hgrow="SOMETIMES" maxWidth="124.0" minWidth="10.0" prefWidth="87.0" />
                <ColumnConstraints hgrow="SOMETIMES" maxWidth="176.0" minWidth="10.0" prefWidth="171.0" />
              </columnConstraints>
              <rowConstraints>
                <RowConstraints maxHeight="30.0" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                <RowConstraints maxHeight="75.0" minHeight="10.0" prefHeight="59.0" vgrow="SOMETIMES" />
                <RowConstraints maxHeight="60.0" minHeight="10.0" prefHeight="31.0" vgrow="SOMETIMES" />
                  <RowConstraints maxHeight="25.0" minHeight="0.0" prefHeight="0.0" vgrow="SOMETIMES" />
              </rowConstraints>
               <children>
                  <Label text="Name" />
                  <Label text="Details" GridPane.rowIndex="1" />
                  <Label text="Estimated time" GridPane.rowIndex="2" />
                  <TextField promptText="Enter name" GridPane.columnIndex="1" />
                  <TextField promptText="Enter estimated time" GridPane.columnIndex="1" GridPane.rowIndex="2" />
                  <TextArea prefHeight="200.0" prefWidth="200.0" promptText="Enter details" GridPane.columnIndex="1" GridPane.rowIndex="1" />
               </children>
            </GridPane>
            <Button layoutX="219.0" layoutY="372.0" mnemonicParsing="false" text="Done" />
            <Button layoutX="152.0" layoutY="372.0" mnemonicParsing="false" text="Cancel" />
         </children></AnchorPane>
  </items>
</SplitPane>

编辑:为了澄清,我有一个FXML文件、一个控制器类和一个构造函数类。我需要连接到我的控制器类。

共有1个答案

汪天宇
2023-03-14

定义了controller类之后,就可以将FXML文件链接到它。在SceneBuilder中,展开左下方的“controller”标题窗格,并键入controller类的完全限定名。

若要为按钮指定处理程序方法,请选择该按钮,然后展开“代码”标题窗格(右面板的底部窗格)。例如,您可以在“On action”字段中添加操作处理程序的方法名。

如果在没有SceneBuilder的情况下执行此操作,则可以将属性fx:controller=“...”添加到FXML的根元素中,指定完全限定的类名。对于按钮,可以将onaction=“#methodname”添加到 元素中,指定按下按钮时要执行的方法的名称。该方法应该采用ActionEvent类型的单个参数,或者不采用任何参数。

 类似资料:
  • 我有一个有几个按钮的工具栏。我想要几个按钮来加载不同的FXML文件。现在的方法是用Java代码编写fxml文件,并在每次调用时插入它。如果我可以调用FXML文件并获得正确的场景,这将是一个更好的选择。这是我加载设置视图的示例: 我以前使用过tabpane,它的便利之处在于它可以加载“内容”,在某种程度上,它是一个actionlistener,可以加载fxml文件。我希望工具栏按钮具有此功能。 我们

  • 我是新来的社区,我真的不知道如何在这里寻求帮助。我试图为我的警报弹出窗口创建一个关闭按钮,但我遇到了语法错误。我还想在窗口完全关闭之前执行一些操作。 这是调用窗口出现的驱动程序: 这是警报的控制器 这是警报的FXML文件 我还尝试使用setOnAction,但发生了相同的错误。 非常感谢!!

  • 问题内容: 我想生成大量的Tkinter ,它们可以做不同的事情。我有以下代码: 如果为5,尽管我得到标记为的按钮,但单击它们时都可以。 我需要第一个按钮执行,第二个按钮执行,依此类推。 问题答案: 我认为问题在于,循环结束后,会获取的最终值。这应该解决(未测试): 更新资料 顺便说一句,这是通过在函数中添加一个自变量的默认值来实现的,该默认值是根据在循环中创建每个变量时的值计算得出的,而不是在稍

  • 我有两项活动。其中一个有碎片<从这个片段中,我可以转到另一个活动,但单击“主页”按钮,它会转到上一个活动,而不是转到上一个活动的片段。 图像

  • 我有一个HTML格式的表,显示关于产品的数据。好吧,在这个表中我想添加一个按钮,允许用户在愿意的情况下删除该产品,该按钮将通过JavaScript与表中的信息一起自动生成。 没有信息的表应该如下所示: 在JavaScript中,我有一个函数可以处理这个表,一个用来添加空行,另一个用来添加信息,包括delete按钮。 其余的代码没有太大的关系,以至于有变量和函数的名字,我没有给出细节。对我来说最重要