完成实验十的空闲
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Login extends JFrame { // JPanel JPanel panelTop, panelCenter, panelBottom; JLabel image, labelName, labelAge, labelSex, labelSpeciality; JTextField textName, textAge, textSex, textSpeciality; JButton btn_confirm, btn_reset; JRadioButton male, female; JCheckBox javaCheckBox, cCheckBox; JTextArea introduction; JScrollPane scrollPane; public Login() { setSize(400, 300); // 设置窗口大小 setTitle("注册"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); // 窗口居中 // 1. 上部面板 // 创建 ImageIcon 对象 ImageIcon logo = new ImageIcon("welcome.gif"); // 创建 JLabel 并设置图标 image = new JLabel(logo); panelTop = new JPanel(); panelTop.add(image); // 2. 中部面板 panelCenter = new JPanel(); labelName = new JLabel("姓 名"); labelAge = new JLabel("年 龄"); labelSex = new JLabel("性 别"); labelSpeciality = new JLabel("擅长"); ButtonGroup buttonGroup = new ButtonGroup(); male = new JRadioButton("Male"); female = new JRadioButton("Female"); buttonGroup.add(male); buttonGroup.add(female); javaCheckBox = new JCheckBox("Java"); cCheckBox = new JCheckBox("C"); introduction = new JTextArea("自我介绍", 4, 5); scrollPane = new JScrollPane(introduction); // 将 JTextArea 添加到 JScrollPane 中以提高滚动功能 panelCenter.add(labelName); panelCenter.add(labelAge); panelCenter.add(labelSex); panelCenter.add(labelSpeciality); panelCenter.add(textName = new JTextField(10)); // 设置文本框长度为10 panelCenter.add(textAge = new JTextField(10)); panelCenter.add(textSex = new JTextField(10)); panelCenter.add(textSpeciality = new JTextField(10)); panelCenter.setLayout(new BoxLayout(panelCenter, BoxLayout.Y_AXIS)); // 使用垂直布局管理器排列组件 panelBottom = new JPanel(); // 创建下部面板 btn_confirm = new JButton("确认"); // 创建确认按钮并设置文本为“确认” btn_reset = new JButton("重置"); btn_confirm.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { StringBuffer stringBuffer=new StringBuffer(); stringBuffer.append("姓名"+textName.getText()); stringBuffer.append("性别"); //JOptionPane.showMessageDialog(this,"a","b"); if(male.isSelected()){ stringBuffer.append("性别"+male.getText()); }else{ stringBuffer.append("性别"+female.getText()); } stringBuffer.append("擅长"); } }); btn_confirm.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (textName.getText().isEmpty()) { JOptionPane.showMessageDialog(null, "姓名不能为空"); } } }); btn_reset.addActionListener(new ActionListener() { // 为重置按钮添加监听器以处理点击事件 @Override public void actionPerformed(ActionEvent e) { textAge.setText(""); textName.setText(""); } }); panelCenter.add(male); panelCenter.add(female); panelCenter.add(javaCheckBox); panelCenter.add(cCheckBox); panelBottom.add(btn_confirm); // 将确认按钮添加到下部面板中并水平排列(默认布局管理器) panelBottom.add(btn_reset); // 将重置按钮添加到下部面板中并水平排列(默认布局管理器) panelBottom.add(Box.createHorizontalStrut(10)); // 在两个按钮之间添加间距以美化界面布局(可选) // 将所有面板添加到窗口中 add(panelTop, BorderLayout.NORTH); // 顶部面板添加到窗口顶部 add(panelCenter, BorderLayout.CENTER); // 中部面板添加到窗口中心 add(panelBottom, BorderLayout.SOUTH); // 下部面板添加到窗口底部 } public static void main(String[] args) { Login login = new Login(); // 创建Login对象,并显示窗口 login.setVisible(true); // 设置窗口为可见 } }