在另一个TextArea中显示输入的TextField

时间:2016-12-02 00:52:38

标签: java eclipse textfield fxml scenebuilder

我正在使用Eclipse内部的JavaFX和SceneBuilder进行课程学习,并且在TextArea中显示TextField的文本(称为'设置消息')时遇到问题(称为' messageArea')

处理TextField和TextArea的FXML是

<TextField fx:id="setMessage" /> <TextArea fx:id="messageArea" prefHeight="112.0" prefWidth="366.0"/>

我一直试图使用的Java是if else声明。

我已经设置了

@FXML private TextField setMesssage @FXML private TextArea messageArea

我的最新尝试是:

messageArea.setText(setMessage.getText() + "static text to display.");

我的头脑太深了,我在逻辑中遗漏了一些明显的东西。

更新: 我对另一个想法有了进一步的了解。我尝试将textdisplay附加到用户点击的按钮,并且几乎让它工作。代码移出if else,而不是在按钮类中。显示文本的代码是

messageArea.setText("text" + messageArea);

然而,在显示&#34; text&#34;在我想要的地方,messageArea出于某种原因显示了fxml代码。

1 个答案:

答案 0 :(得分:0)

hitchhiker

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TextAppender extends Application {
    @Override
    public void start(Stage stage) {
        TextField textField = new TextField();
        textField.setPromptText("Enter text to be appended.");
        Button append = new Button("Append");
        append.setDefaultButton(true);
        TextArea textArea = new TextArea();
        textArea.setPromptText("Appended text is displayed here.");
        textArea.setEditable(false);

        append.setOnAction(event -> {
            textArea.setText(textArea.getText() + textField.getText() + "\n");
            textField.clear();
        });

        VBox layout = new VBox(10);
        layout.getChildren().addAll(
                textField,
                append,
                textArea
        );
        layout.setPadding(new Insets(10));
        stage.setScene(new Scene(layout));
        stage.show();
    }

    public static void main(String[] args) {
        launch();
    }
}