我正在使用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代码。
答案 0 :(得分:0)
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();
}
}