使用绝对定位,实现注册和登录界面。性别选项为男女,专业选项,爱好选项跳舞 阅读和唱歌 用Java编译
时间: 2023-12-03 18:47:34 浏览: 40
首先需要明确注册和登录界面的具体设计要求,包括需要哪些元素、元素的布局方式等。
假设注册和登录界面的设计如下:
1. 注册界面包括以下元素:用户名输入框、密码输入框、确认密码输入框、性别单选框、专业下拉列表、爱好多选框、注册按钮、取消按钮。
2. 登录界面包括以下元素:用户名输入框、密码输入框、登录按钮、取消按钮。
接下来,使用绝对定位来实现这两个界面。代码如下:
```
import javax.swing.*;
import java.awt.*;
public class RegisterAndLoginDemo extends JFrame {
// 注册界面各组件
private JLabel usernameLabel;
private JTextField usernameField;
private JLabel passwordLabel;
private JPasswordField passwordField;
private JLabel confirmPasswordLabel;
private JPasswordField confirmPasswordField;
private JLabel genderLabel;
private JRadioButton maleRadioButton;
private JRadioButton femaleRadioButton;
private ButtonGroup genderGroup;
private JLabel majorLabel;
private JComboBox<String> majorComboBox;
private JLabel hobbyLabel;
private JCheckBox danceCheckBox;
private JCheckBox readingCheckBox;
private JCheckBox singingCheckBox;
private JButton registerButton;
private JButton cancelButton;
// 登录界面各组件
private JLabel loginUsernameLabel;
private JTextField loginUsernameField;
private JLabel loginPasswordLabel;
private JPasswordField loginPasswordField;
private JButton loginButton;
private JButton loginCancelButton;
public RegisterAndLoginDemo() {
// 初始化注册界面
setTitle("注册");
setLayout(null); // 使用绝对布局
setSize(400, 400);
// 添加用户名输入框
usernameLabel = new JLabel("用户名:");
usernameLabel.setBounds(50, 50, 80, 30);
add(usernameLabel);
usernameField = new JTextField();
usernameField.setBounds(140, 50, 200, 30);
add(usernameField);
// 添加密码输入框
passwordLabel = new JLabel("密码:");
passwordLabel.setBounds(50, 100, 80, 30);
add(passwordLabel);
passwordField = new JPasswordField();
passwordField.setBounds(140, 100, 200, 30);
add(passwordField);
// 添加确认密码输入框
confirmPasswordLabel = new JLabel("确认密码:");
confirmPasswordLabel.setBounds(50, 150, 80, 30);
add(confirmPasswordLabel);
confirmPasswordField = new JPasswordField();
confirmPasswordField.setBounds(140, 150, 200, 30);
add(confirmPasswordField);
// 添加性别单选框
genderLabel = new JLabel("性别:");
genderLabel.setBounds(50, 200, 80, 30);
add(genderLabel);
maleRadioButton = new JRadioButton("男");
maleRadioButton.setBounds(140, 200, 60, 30);
femaleRadioButton = new JRadioButton("女");
femaleRadioButton.setBounds(210, 200, 60, 30);
genderGroup = new ButtonGroup();
genderGroup.add(maleRadioButton);
genderGroup.add(femaleRadioButton);
add(maleRadioButton);
add(femaleRadioButton);
// 添加专业下拉列表
majorLabel = new JLabel("专业:");
majorLabel.setBounds(50, 250, 80, 30);
add(majorLabel);
String[] majors = {"计算机科学与技术", "软件工程", "信息安全", "网络工程"};
majorComboBox = new JComboBox<>(majors);
majorComboBox.setBounds(140, 250, 200, 30);
add(majorComboBox);
// 添加爱好多选框
hobbyLabel = new JLabel("爱好:");
hobbyLabel.setBounds(50, 300, 80, 30);
add(hobbyLabel);
danceCheckBox = new JCheckBox("跳舞");
danceCheckBox.setBounds(140, 300, 60, 30);
readingCheckBox = new JCheckBox("阅读");
readingCheckBox.setBounds(210, 300, 60, 30);
singingCheckBox = new JCheckBox("唱歌");
singingCheckBox.setBounds(280, 300, 60, 30);
add(danceCheckBox);
add(readingCheckBox);
add(singingCheckBox);
// 添加注册和取消按钮
registerButton = new JButton("注册");
registerButton.setBounds(100, 350, 80, 30);
add(registerButton);
cancelButton = new JButton("取消");
cancelButton.setBounds(220, 350, 80, 30);
add(cancelButton);
// 初始化登录界面
loginUsernameLabel = new JLabel("用户名:");
loginUsernameLabel.setBounds(50, 50, 80, 30);
loginUsernameField = new JTextField();
loginUsernameField.setBounds(140, 50, 200, 30);
loginPasswordLabel = new JLabel("密码:");
loginPasswordLabel.setBounds(50, 100, 80, 30);
loginPasswordField = new JPasswordField();
loginPasswordField.setBounds(140, 100, 200, 30);
loginButton = new JButton("登录");
loginButton.setBounds(100, 150, 80, 30);
loginCancelButton = new JButton("取消");
loginCancelButton.setBounds(220, 150, 80, 30);
// 添加登录界面各组件
JPanel loginPanel = new JPanel();
loginPanel.setLayout(null);
loginPanel.add(loginUsernameLabel);
loginPanel.add(loginUsernameField);
loginPanel.add(loginPasswordLabel);
loginPanel.add(loginPasswordField);
loginPanel.add(loginButton);
loginPanel.add(loginCancelButton);
// 添加选项卡
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("注册", null, this.getContentPane(), "用户注册");
tabbedPane.addTab("登录", null, loginPanel, "用户登录");
add(tabbedPane);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new RegisterAndLoginDemo();
}
}
```
以上代码实现了注册和登录界面,包括各种元素的绝对位置布局。其中,使用了JRadioButton、JComboBox和JCheckBox等Swing组件,方便用户选择不同的选项。