用java:2、请设计一个个人信息注册界面,要求界面中至少包含有文本输入框(输入学号、姓名等内容)、单选按钮(性别)和复选按钮(用于勾选个人兴趣爱好)和【提交】按钮,要求布局要求合理、美观。要求实现如下功能: (Exp6_02.java) (1)当在文本框等控件输入信息后,按下【提交】按钮,判断所填信息是否完整,如是则将个人所填和所选信息内容组合成一个字符串(信息项之间用#分隔,组合样例:20220001#张三#男#足球、游泳、看电影)写入文件stuInfo.txt中。
时间: 2024-04-04 12:34:31 浏览: 64
学生信息管理系统java课程设计(含源代码)(2).doc
好的,我可以帮您设计这个界面并实现所需的功能。以下是Java代码示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Exp6_02 extends JFrame implements ActionListener {
private JLabel idLabel, nameLabel, genderLabel, hobbyLabel;
private JTextField idField, nameField;
private JRadioButton maleRadio, femaleRadio;
private JCheckBox footballCheckBox, swimCheckBox, movieCheckBox;
private JButton submitButton;
public Exp6_02() {
setTitle("个人信息注册界面");
setSize(400, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建文本标签和输入框
idLabel = new JLabel("学号:");
nameLabel = new JLabel("姓名:");
idField = new JTextField(20);
nameField = new JTextField(20);
// 创建单选按钮
genderLabel = new JLabel("性别:");
maleRadio = new JRadioButton("男");
femaleRadio = new JRadioButton("女");
ButtonGroup genderGroup = new ButtonGroup();
genderGroup.add(maleRadio);
genderGroup.add(femaleRadio);
// 创建复选框
hobbyLabel = new JLabel("兴趣爱好:");
footballCheckBox = new JCheckBox("足球");
swimCheckBox = new JCheckBox("游泳");
movieCheckBox = new JCheckBox("看电影");
// 创建提交按钮
submitButton = new JButton("提交");
submitButton.addActionListener(this);
// 创建面板并添加控件
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(5, 2));
panel.add(idLabel);
panel.add(idField);
panel.add(nameLabel);
panel.add(nameField);
panel.add(genderLabel);
panel.add(maleRadio);
panel.add(new JLabel(""));
panel.add(femaleRadio);
panel.add(hobbyLabel);
panel.add(footballCheckBox);
panel.add(new JLabel(""));
panel.add(swimCheckBox);
panel.add(new JLabel(""));
panel.add(movieCheckBox);
panel.add(new JLabel(""));
panel.add(submitButton);
// 添加面板到窗口并显示
add(panel);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == submitButton) {
// 获取输入的信息
String id = idField.getText();
String name = nameField.getText();
String gender = maleRadio.isSelected() ? "男" : "女";
String hobby = "";
if (footballCheckBox.isSelected()) {
hobby += "足球、";
}
if (swimCheckBox.isSelected()) {
hobby += "游泳、";
}
if (movieCheckBox.isSelected()) {
hobby += "看电影、";
}
// 判断是否填写完整
if (id.equals("") || name.equals("") || gender.equals("") || hobby.equals("")) {
JOptionPane.showMessageDialog(this, "请填写完整的个人信息!");
return;
}
// 组合信息并写入文件
String info = id + "#" + name + "#" + gender + "#" + hobby.substring(0, hobby.length() - 1);
try {
FileWriter writer = new FileWriter(new File("stuInfo.txt"), true);
writer.write(info + "\n");
writer.close();
JOptionPane.showMessageDialog(this, "个人信息已成功提交!");
// 清空输入框和选项
idField.setText("");
nameField.setText("");
maleRadio.setSelected(true);
footballCheckBox.setSelected(false);
swimCheckBox.setSelected(false);
movieCheckBox.setSelected(false);
} catch (IOException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "个人信息提交失败,请重试!");
}
}
}
public static void main(String[] args) {
new Exp6_02();
}
}
```
在这个界面中,我们使用了 `JLabel`、`JTextField`、`JRadioButton`、`JCheckBox` 和 `JButton` 等控件来收集个人信息。当点击提交按钮时,我们会获取输入框和选项中的信息,并判断是否填写完整。如果填写完整,则将信息组合成一个字符串并写入文件 `stuInfo.txt` 中。如果填写不完整或写入文件失败,则会弹出相应的提示框。
注意,我们在这里使用了 `FileWriter` 类来将信息写入文件中。由于我们希望每次提交都能将信息追加到文件末尾,因此我们在 `FileWriter` 的构造方法中传入了 `true` 参数。如果你希望每次提交都覆盖原来的信息,可以将该参数改为 `false`。
阅读全文