帮我写一个javafx代码,要求实现:有两个窗口,在第二个窗口的文本框中中输入数据,点击按钮,在第一个窗口的标签中出现在第二个窗口中输入的数据
时间: 2024-03-13 10:43:53 浏览: 88
好的,以下是一份简单的 JavaFX 代码实现你的需求:
```java
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class TwoWindows extends Application {
private String data = ""; // 存储从第二个窗口中输入的数据
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("窗口一");
// 创建一个网格布局,并设置边距和间距
GridPane gridPane = new GridPane();
gridPane.setPadding(new Insets(10, 10, 10, 10));
gridPane.setVgap(5);
gridPane.setHgap(5);
// 创建一个标签,并将其添加到网格布局中
Label label = new Label("从窗口二中传来的数据:");
gridPane.add(label, 0, 0);
// 创建一个用于显示传入数据的标签,并将其添加到网格布局中
Label dataLabel = new Label();
gridPane.add(dataLabel, 1, 0);
// 创建一个按钮,并将其添加到网格布局中
Button button = new Button("打开窗口二");
gridPane.add(button, 0, 1);
// 设置按钮的点击事件
button.setOnAction(e -> {
// 创建第二个窗口
Stage secondStage = new Stage();
secondStage.setTitle("窗口二");
// 创建一个网格布局,并设置边距和间距
GridPane secondGridPane = new GridPane();
secondGridPane.setPadding(new Insets(10, 10, 10, 10));
secondGridPane.setVgap(5);
secondGridPane.setHgap(5);
// 创建一个标签和一个文本框,并将其添加到网格布局中
Label secondLabel = new Label("请输入数据:");
secondGridPane.add(secondLabel, 0, 0);
TextField textField = new TextField();
secondGridPane.add(textField, 1, 0);
// 创建一个按钮,并将其添加到网格布局中
Button secondButton = new Button("传递数据");
secondGridPane.add(secondButton, 0, 1);
// 设置按钮的点击事件
secondButton.setOnAction(event -> {
data = textField.getText(); // 获取文本框中的数据
dataLabel.setText(data); // 将数据显示在第一个窗口的标签中
secondStage.close(); // 关闭第二个窗口
});
// 创建一个新的场景,并将其设置为第二个窗口的场景
Scene secondScene = new Scene(secondGridPane, 300, 100);
secondStage.setScene(secondScene);
secondStage.show();
});
// 创建一个新的场景,并将其设置为第一个窗口的场景
Scene scene = new Scene(gridPane, 300, 100);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
这份代码创建了两个窗口,第一个窗口包含一个标签和一个按钮,点击按钮可以打开第二个窗口。第二个窗口包含一个标签、一个文本框和一个按钮,可以在文本框中输入数据并点击按钮将数据传递回第一个窗口。第一个窗口中的标签会显示从第二个窗口中传来的数据。
阅读全文