从javafx创建笔记应用程序

时间:2017-02-01 13:07:42

标签: javafx fxml scenebuilder

如何让textarea从文本字段中获取用户输入?如何从控制器控制这些按钮,是否有任何可能的方法,当用户提交时,我可以使文本字段充当textarea,用户可以在单击textarea进行编辑时进行编辑?

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.*?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javafxnote.Note2Controller">
   <top>
      <AnchorPane prefHeight="56.0" prefWidth="600.0" BorderPane.alignment="CENTER">
         <children>
            <Button fx:id="btn2" layoutX="555.0" layoutY="10.0" mnemonicParsing="false" onMouseClicked="#test" text="x" />
         </children>
      </AnchorPane>
   </top>
   <center>
      <TextArea prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
         <BorderPane.margin>
            <Insets left="10.0" right="10.0" />
         </BorderPane.margin></TextArea>
   </center>
   <padding>
      <Insets bottom="20.0" />
   </padding>
   <bottom>
      <VBox prefHeight="149.0" prefWidth="600.0" BorderPane.alignment="CENTER">
         <children>
            <TextField prefHeight="111.0" prefWidth="600.0">
               <VBox.margin>
                  <Insets />
               </VBox.margin>
            </TextField>
            <AnchorPane prefHeight="38.0" prefWidth="580.0">
               <children>
                  <Button fx:id="btsub" layoutX="434.0" layoutY="21.0" mnemonicParsing="false" text="submit" />
                  <Button fx:id="btcl" layoutX="518.0" layoutY="21.0" mnemonicParsing="false" text="clear" />
               </children>
            </AnchorPane>
         </children>
         <BorderPane.margin>
            <Insets left="10.0" right="10.0" />
         </BorderPane.margin>
      </VBox>
   </bottom>
</BorderPane>

1 个答案:

答案 0 :(得分:0)

在控制器中为按钮添加操作:

在SceneBuilder中添加控制器类 要指定控制器的类,请在选项卡&#34; Controller&#34;下选中SceneBuilder的右侧。是一个名为&#34;控制器类&#34;的文本字段。另请注意,所有节点都有一个列表,其中包含&#34; fx-id&#34;。

将fx:id添加到控制器中所需的所有节点 对于需要在控制器中使用的任何组件,请添加fx:id。对于操作,请在选项卡中添加方法名称&#34; Code&#34;任何组件。例如,如果您想要按钮的操作&#34;提交&#34;在字段中添加方法的名称&#34; On Action&#34;命名&#34; submitPushed&#34;

在控制器的课程中添加所有带有fx:id 的节点 对于使用fx:id归属的每个节点,您需要使用注释@FXML将其添加为控制器类中的属性。对于具有fx:id textSubmit的TextField,您将在控制器中添加属性

@FXML TextField textSubmit 

在控制器类中定义操作的方法 对于名为&#34;提交&#34;的按钮;通过动作&#34; submitPushed&#34;你需要声明动作的方法

@FXML submitPushed(ActionEvent event){
    //add code here for what the button should do
}

如果要在按下提交按钮时将TextField的内容添加到TextArea

@FXML submitPushed(ActionEvent event){
    String content=textField.getText();
    String contentTextArea = textArea.getText();
    textArea.setText(contentTextArea+"\n"+content);
}