利用Swing包中组件实现如下GUI包含学号姓名性别,给出Java代码并验证与思考: (1) 你用了几个容器,每个容器各是什么布局? (2)给出你的GUI中的组件包容关系 (3)你的窗口可以关闭吗? 如果不能,应如何修改程序使其可以关闭。
时间: 2024-01-28 17:02:51 浏览: 66
根据图片,可以使用一个 `JFrame` 窗口作为容器,内部使用 `JPanel` 容器,并使用 `GridLayout` 布局管理器将其分为四行两列的格子。
每个格子中可以使用一个 `JLabel` 标签显示提示文字,和一个 `JTextField` 文本框用于输入信息。
组件包容关系如下:
- `JFrame` 包含 `JPanel`
- `JPanel` 包含 8 个格子
- 8 个格子中分别包含一个 `JLabel` 和一个 `JTextField`
窗口默认情况下是可以关闭的,可以在窗口上添加一个关闭按钮,点击该按钮时可以关闭窗口。可以使用 `setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);` 方法指定窗口关闭时的操作,例如将窗口隐藏或者退出程序。完整的 Java 代码如下:
```java
import javax.swing.*;
import java.awt.*;
public class MyGUI extends JFrame {
private JTextField idField, nameField, genderField;
public MyGUI() {
// 设置窗口标题和默认关闭操作
setTitle("学生信息录入");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建组件
JLabel idLabel = new JLabel("学号:", JLabel.RIGHT);
JLabel nameLabel = new JLabel("姓名:", JLabel.RIGHT);
JLabel genderLabel = new JLabel("性别:", JLabel.RIGHT);
idField = new JTextField(10);
nameField = new JTextField(10);
genderField = new JTextField(10);
// 创建面板并添加组件
JPanel panel = new JPanel(new GridLayout(4, 2));
panel.add(idLabel);
panel.add(idField);
panel.add(nameLabel);
panel.add(nameField);
panel.add(genderLabel);
panel.add(genderField);
// 将面板添加到窗口中并设置窗口大小和可见性
add(panel);
setSize(300, 150);
setVisible(true);
}
public static void main(String[] args) {
new MyGUI();
}
}
```
阅读全文