用代码实现设计一个Java Swing GUI,包含两个角色的登录界面,一个教师角色的主界面和一个学生角色的主界面
时间: 2024-03-13 22:45:48 浏览: 21
好的,以下是一个简单的实现示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class LoginGUI extends JFrame implements ActionListener {
private JLabel label1, label2;
private JTextField textField;
private JPasswordField passwordField;
private JButton loginButton;
private JPanel panel1, panel2;
private JRadioButton teacherRadioButton, studentRadioButton;
public LoginGUI() {
super("Login");
// 创建组件
label1 = new JLabel("Username:");
label2 = new JLabel("Password:");
textField = new JTextField(15);
passwordField = new JPasswordField(15);
loginButton = new JButton("Login");
loginButton.addActionListener(this);
teacherRadioButton = new JRadioButton("Teacher", true);
studentRadioButton = new JRadioButton("Student");
// 创建面板
panel1 = new JPanel(new GridLayout(2, 2));
panel1.add(label1);
panel1.add(textField);
panel1.add(label2);
panel1.add(passwordField);
panel2 = new JPanel(new GridLayout(2, 1));
ButtonGroup group = new ButtonGroup();
group.add(teacherRadioButton);
group.add(studentRadioButton);
panel2.add(teacherRadioButton);
panel2.add(studentRadioButton);
// 添加组件和面板
add(panel1, BorderLayout.CENTER);
add(panel2, BorderLayout.SOUTH);
add(loginButton, BorderLayout.NORTH);
// 设置窗口属性
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// 获取登录信息
String username = textField.getText();
String password = String.valueOf(passwordField.getPassword());
String userType = "";
if (teacherRadioButton.isSelected()) {
userType = "teacher";
} else if (studentRadioButton.isSelected()) {
userType = "student";
}
// 判断登录信息是否正确
boolean loginSuccess = false;
if (userType.equals("teacher")) {
if (username.equals("teacher") && password.equals("teacher123")) {
loginSuccess = true;
}
} else if (userType.equals("student")) {
if (username.equals("student") && password.equals("student123")) {
loginSuccess = true;
}
}
// 打开对应角色的主界面
if (loginSuccess) {
if (userType.equals("teacher")) {
new TeacherGUI();
} else if (userType.equals("student")) {
new StudentGUI();
}
dispose();
} else {
JOptionPane.showMessageDialog(this, "Invalid username or password.");
}
}
public static void main(String[] args) {
new LoginGUI();
}
}
class TeacherGUI extends JFrame {
private JLabel label;
public TeacherGUI() {
super("Teacher");
// 创建组件
label = new JLabel("Welcome, Teacher!");
// 添加组件
add(label, BorderLayout.CENTER);
// 设置窗口属性
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
}
class StudentGUI extends JFrame {
private JLabel label;
public StudentGUI() {
super("Student");
// 创建组件
label = new JLabel("Welcome, Student!");
// 添加组件
add(label, BorderLayout.CENTER);
// 设置窗口属性
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
}
```
这个程序会创建一个登录界面,其中包含两个文本框、两个标签、两个单选按钮和一个登录按钮。当用户单击登录按钮时,程序会检查用户名和密码是否正确,并根据用户选择的角色(教师或学生)打开对应的主界面。教师和学生的主界面只包含一个欢迎标签。