编写一个JavaFX程序,显示4个带卷标的单行文本框,允许用户分别输入姓名、年龄、最喜欢的颜色以及爱好等信息。还需包含一个显示卷标为Print的按钮。当按下这个按钮时,程序必须使用println语句,将这些文本框中的全部内容输出到控制台窗口(标准输出)。
1. 项目结构
2. 实现代码
MainController
package tech.zger.www.controller;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
/**
* @author zg
* @create 2021/11/18 0:11
*/
public class MainController {
@FXML
private TextField name;
@FXML
private TextField age;
@FXML
private TextField hobby;
@FXML
private TextField color;
@FXML
private void printInfo() {
System.out.println(this.name.getText());
System.out.println(this.age.getText());
System.out.println(this.hobby.getText());
System.out.println(this.color.getText());
System.out.println();
}
}
main.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0"
prefWidth="600.0" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="tech.zger.www.controller.MainController">
<children>
<Label layoutX="163.0" layoutY="57.0" text="姓名"/>
<TextField fx:id="name" layoutX="269.0" layoutY="52.0"/>
<Label layoutX="163.0" layoutY="118.0" text="年龄"/>
<TextField fx:id="age" layoutX="269.0" layoutY="113.0"/>
<Label layoutX="163.0" layoutY="175.0" text="爱好"/>
<TextField fx:id="hobby" layoutX="269.0" layoutY="170.0"/>
<Label layoutX="152.0" layoutY="236.0" text="颜色喜好"/>
<TextField fx:id="color" layoutX="269.0" layoutY="231.0"/>
<Button layoutX="286.0" layoutY="315.0" mnemonicParsing="false" onAction="#printInfo"
text="Print"/>
</children>
</Pane>
MainApplication
package tech.zger.www;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import java.io.IOException;
/**
* @author zg
* @create 2021/11/17 23:57
*/
public class MainApplication extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("print");
primaryStage.setResizable(false);
primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/tech/zger/www/logo/zg.jpg")));
try {
Pane pane = FXMLLoader.load(getClass().getResource("/tech/zger/www/view/main.fxml"));
Scene scene = new Scene(pane, 600, 400);
primaryStage.setScene(scene);
primaryStage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. 实验效果
- 初始界面
- 填写信息并打印