请写一个java 1.综合使用卡片布局管理器,菜单,单选框,复选框和文本域,标签等,开发一个考试管理系统: (1) 点击“考生信息”菜单,选择“登录”子菜单,进入到用户登录界面。 提示:把登录界面中的所有组件放入到一个JPanel-1 (2) 点击“试卷类型”菜单,选择“数学试卷”,进入数学试卷界面。 提示:把数学试卷界面中的所有组件放入到一个JPanel-2 (3) 点击“试卷类型”菜单,选择“计算机试卷”,进入计算机试卷界面。 提示:把计算机试卷界面中的所有组件放入到一个JPanel-3 然后在卡片布局上,切换3个JPanel
时间: 2024-02-09 09:08:43 浏览: 21
以下是一个简单的Java代码实现考试管理系统,实现了菜单、单选框、复选框、文本域、标签等组件的使用,同时使用卡片布局管理器实现了3个JPanel的切换:
```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ExamManagementSystem extends JFrame implements ActionListener{
// 菜单栏
private JMenuBar menuBar;
private JMenu studentMenu, paperMenu;
private JMenuItem loginItem, mathItem, computerItem;
// 卡片布局
private CardLayout cardLayout;
private JPanel cardPanel;
// 登录界面组件
private JPanel loginPanel;
private JLabel userLabel, passLabel;
private JTextField userField;
private JPasswordField passField;
private JButton loginBtn;
// 数学试卷界面组件
private JPanel mathPanel;
private JLabel mathLabel;
private JRadioButton mathOption1, mathOption2, mathOption3;
private JButton mathSubmitBtn;
// 计算机试卷界面组件
private JPanel computerPanel;
private JLabel computerLabel;
private JCheckBox computerOption1, computerOption2, computerOption3;
private JButton computerSubmitBtn;
public ExamManagementSystem(){
// 初始化菜单栏
menuBar = new JMenuBar();
studentMenu = new JMenu("考生信息");
paperMenu = new JMenu("试卷类型");
loginItem = new JMenuItem("登录");
mathItem = new JMenuItem("数学试卷");
computerItem = new JMenuItem("计算机试卷");
studentMenu.add(loginItem);
paperMenu.add(mathItem);
paperMenu.add(computerItem);
menuBar.add(studentMenu);
menuBar.add(paperMenu);
loginItem.addActionListener(this);
mathItem.addActionListener(this);
computerItem.addActionListener(this);
setJMenuBar(menuBar);
// 初始化卡片布局
cardLayout = new CardLayout();
cardPanel = new JPanel(cardLayout);
// 初始化登录界面
loginPanel = new JPanel(new GridLayout(3, 2));
userLabel = new JLabel("用户名:");
passLabel = new JLabel("密 码:");
userField = new JTextField();
passField = new JPasswordField();
loginBtn = new JButton("登录");
loginPanel.add(userLabel);
loginPanel.add(userField);
loginPanel.add(passLabel);
loginPanel.add(passField);
loginPanel.add(new JLabel());
loginPanel.add(loginBtn);
cardPanel.add(loginPanel, "login");
// 初始化数学试卷界面
mathPanel = new JPanel(new GridLayout(4, 1));
mathLabel = new JLabel("1+1=");
mathOption1 = new JRadioButton("1");
mathOption2 = new JRadioButton("2");
mathOption3 = new JRadioButton("3");
ButtonGroup mathGroup = new ButtonGroup();
mathGroup.add(mathOption1);
mathGroup.add(mathOption2);
mathGroup.add(mathOption3);
mathSubmitBtn = new JButton("提交");
mathPanel.add(mathLabel);
mathPanel.add(mathOption1);
mathPanel.add(mathOption2);
mathPanel.add(mathOption3);
mathPanel.add(mathSubmitBtn);
cardPanel.add(mathPanel, "math");
// 初始化计算机试卷界面
computerPanel = new JPanel(new GridLayout(4, 1));
computerLabel = new JLabel("你会哪些编程语言?");
computerOption1 = new JCheckBox("Java");
computerOption2 = new JCheckBox("Python");
computerOption3 = new JCheckBox("C++");
computerSubmitBtn = new JButton("提交");
computerPanel.add(computerLabel);
computerPanel.add(computerOption1);
computerPanel.add(computerOption2);
computerPanel.add(computerOption3);
computerPanel.add(computerSubmitBtn);
cardPanel.add(computerPanel, "computer");
// 添加卡片布局到窗口中
add(cardPanel);
setTitle("考试管理系统");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == loginItem){
cardLayout.show(cardPanel, "login");
}else if(e.getSource() == mathItem){
cardLayout.show(cardPanel, "math");
}else if(e.getSource() == computerItem){
cardLayout.show(cardPanel, "computer");
}
}
public static void main(String[] args){
new ExamManagementSystem();
}
}
```