要求包括以下内容:用户名,密码,性别(用单选组件),专业选择(用下拉列表组件),注册按钮,并要求编写注册按钮事件,将输入的用户名、密码、性别和专业输出。
实现效果图如下:
package 实验报告4_5;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class Register {
public static void main(String[] args) {
// 1、 编写程序,实现一个用户信息注册界面,要求包括以下内容:
//用户名,密码,性别(用单选组件),专业选择(用下拉列表组件),
//注册按钮,并要求编写注册按钮事件,将输入的用户名、密码、性别和专业输出。
SwingUtilities.invokeLater(new Runnable(){
public void run() {
register();
}
});
}
public static void register(){
//创建新窗口
JFrame jf=new JFrame("用户信息注册界面");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗口时,一同结束后台程序。
jf.setSize(500,300);
jf.setVisible(true);//设置窗体可见
jf.setLayout(new BorderLayout());//设置布局格式
//新建用户名部分组件
JLabel yhm = new JLabel("用户名:");
final JTextField yhmtext = new JTextField(20);
JPanel user = new JPanel();
user.add(yhm);
user.add(yhmtext);
//新建用户名部分组件
JLabel mm = new JLabel("密码:");
final JPasswordField mmtext = new JPasswordField(20);
JPanel pass = new JPanel();
pass.add(mm);
pass.add(mmtext);
//将用户名与密码放至一个JPanel中
JPanel start = new JPanel();
start.setLayout(new BorderLayout());
start.add(user,BorderLayout.PAGE_START);
start.add(pass,BorderLayout.CENTER);
jf.add(start,BorderLayout.PAGE_START);
//新建性别组件(单选)
JLabel xb = new JLabel("性别:");
ButtonGroup group = new ButtonGroup();
final JRadioButton rb1 = new JRadioButton("男");
final JRadioButton rb2 = new JRadioButton("女");
group.add(rb1);
group.add(rb2);
JPanel sex = new JPanel();
sex.add(xb);
sex.add(rb1);
sex.add(rb2);
//新建专业选择组件(下拉式组件)
JLabel zy = new JLabel("专业选择:");
final JComboBox<String> zyxz = new JComboBox<String>();
zyxz.addItem("请选择专业");
zyxz.addItem("计算机科学与技术");
zyxz.addItem("物联网工程");
zyxz.addItem("人工智能");
zyxz.addItem("电气工程及其自动化");
JPanel xz = new JPanel();
xz.add(zy);
xz.add(zyxz);
//将性别和专业选择放至一个JPanel中
JPanel center = new JPanel();
center.setLayout(new BorderLayout());
center.add(sex,BorderLayout.PAGE_START);
center.add(xz,BorderLayout.CENTER);
jf.add(center,BorderLayout.CENTER);
//新建注册按钮,并放至信息注册界面最底部
JButton zc = new JButton("注册");
jf.add(zc,BorderLayout.PAGE_END);
//定义一个JDialog对话框
final JDialog jg = new JDialog(jf,"注册结果界面",true);
jg.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
jg.setSize(300, 300);
final JTextArea cg = new JTextArea();
jg.add(cg);
//为注册按钮设置事件
zc.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(zyxz.getSelectedItem().equals("请选择专业")){
cg.append("不好意思,注册失败!\n");
cg.append("专业选择不能为空!\n");
jg.setVisible(true);
}else{
cg.append("恭喜你,注册成功!\n");
cg.append("用户名为:"+yhmtext.getText()+"\n");
cg.append("密码为:"+String.valueOf(mmtext.getPassword())+"\n");
if(rb1.isSelected()){
cg.append("性别为:男\n");
}else{
cg.append("性别为:女\n");
}
cg.append("专业为:"+zyxz.getSelectedItem()+"\n");
jg.setVisible(true);
}
cg.setText("");
}
});
}
}