实验 (7) 项目名称:组件及事件处理-注册页面
一、 实验报告内容一般包括以下几个内容:
-
实验项目名称 实验7 组件及事件处理-注册页面
-
实验目的和要求
本实验的目的:
本实验的目的是让学生掌握常用的组件类JButton,JTextField,JTextArea,JLabel,JCheckBox,JRadioButton, JPasswordField。
实验具体要求:
设计如下的注册界面:
-
实验原理
-
主要仪器设备
(1)学生每人一台PC机;
(2)互联网环境。
实验解答:
Demo.java
package data20240418;
public class Demo {
public static void main(String[] args) {
new WinLogin();
}
}
WinLogin.java
package data20240418;
import javax.swing.*;
public class WinLogin extends JFrame
{
public WinLogin()
{
setLayout(null);
init_name();//设置用户名和密码
init_sex();//设置性别
init_hobby();//设置爱好
init_country();//设置国家
init_self();//自我评价
init_testpass();//验证码
init_button();
setTitle("注册界面");
setBounds(500,200,400,350);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
void init_name()
{
JLabel username=new JLabel("用户名");
JLabel passwordOne=new JLabel("密码");
JLabel passwordTwo=new JLabel("确认密码");
JTextField nameText=new JTextField();
JTextField passwordOneText=new JTextField();
JTextField passwordTwoText=new JTextField();
username.setBounds(30,20,100,20);
passwordOne.setBounds(30,40,100,20);
passwordTwo.setBounds(30,60,100,20);
nameText.setBounds(100,20,150,20);
passwordOneText.setBounds(100,40,150,20);
passwordTwoText.setBounds(100,60,150,20);
add(username);
add(passwordOne);
add(passwordTwo);
add(nameText);
add(passwordOneText);
add(passwordTwoText);
}
void init_sex()
{
JLabel sex=new JLabel("性别");
JRadioButton radioM=new JRadioButton("男");
JRadioButton radioF=new JRadioButton("女");
sex.setBounds(30,80,100,20);
radioM.setBounds(100,80,50,20);
radioF.setBounds(160,80,50,20);
ButtonGroup group=new ButtonGroup();
group.add(radioF);
group.add(radioM);
add(sex);
add(radioM);
add(radioF);
}
void init_hobby()
{
JLabel hobby = new JLabel("爱好");
JCheckBox checkBox1,checkBox2,checkBox3,checkBox4;
checkBox1 = new JCheckBox("唱歌");
checkBox2 = new JCheckBox("跳舞");
checkBox3 = new JCheckBox("篮球");
checkBox4 = new JCheckBox("游戏");
hobby.setBounds(30,100,100,20);
checkBox1.setBounds(100,100,50,20);
checkBox2.setBounds(150,100,50,20);
checkBox3.setBounds(200,100,50,20);
checkBox4.setBounds(250,100,50,20);
add(hobby);
add(checkBox1);
add(checkBox2);
add(checkBox3);
add(checkBox4);
}
void init_country()
{
JLabel country = new JLabel("国籍");
JComboBox<String> comBox= new JComboBox<>();
country.setBounds(30,120,100,20);
comBox.addItem("中国");
comBox.addItem("美国");
comBox.addItem("俄罗斯");
comBox.setBounds(100,120,100,20);
add(country);
add(comBox);
}
void init_self()
{
JLabel talk_self = new JLabel("自我评价");
JTextArea textArea = new JTextArea();
talk_self.setBounds(30,140,100,20);
textArea.setBounds(100,140,150,60);
add(talk_self);
add(textArea);
}
void init_testpass()
{
JLabel testpass = new JLabel("验证码");
JTextField textField = new JTextField();
JButton button = new JButton("获取验证码");
testpass.setBounds(30,220,100,20);
textField.setBounds(100,220,120,20);
button.setBounds(200,220,120,20);
add(testpass);
add(textField);
add(button);
}
void init_button()
{
JButton button1 = new JButton("提交");
JButton button2 = new JButton("验证");
button1.setBounds(80,260,80,20);
button2.setBounds(220,260,80,20);
add(button1);
add(button2);
}
}
运行结果展示:
(没调背景色,因为加背景色太丑了)