⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userframe.java

📁 利用JAVA开发的简单考试系统
💻 JAVA
字号:
package viewer;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Rectangle;
import java.awt.Color;
import javax.swing.JToolBar;
import javax.swing.BorderFactory;
import javax.swing.border.TitledBorder;
import javax.swing.JButton;
import java.awt.Insets;
import java.awt.SystemColor;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JTextPane;
import java.awt.GridBagLayout;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JOptionPane;

import controller.command.*;
import java.util.ArrayList;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * <p>Title: </p>
 *  用户基础框架
 * <p>Description: </p>
 * 打开系统时的框架,用于选择试卷类型,和添加,删除,更新。
 * 试卷属性是静态属性。
 * 由此框架点击开始键可以到达子框架TestFrame,
 * 点击添加,删除,更新可以到达子框架OperateFrame
 */
public class UserFrame extends JFrame {
    //属性
    static ArrayList test;//试卷

    JPanel contentPane;
    JPanel jPanel1 = new JPanel();
    JToolBar jToolBar1 = new JToolBar();
    TitledBorder titledBorder1 = new TitledBorder("");
    JButton startButton = new JButton();
    JButton nextButton = new JButton();
    JButton submitButton = new JButton();
    JButton endButton = new JButton();
    JButton showscoreButton = new JButton();
    JButton addButton = new JButton();
    JButton updateButton = new JButton();
    JButton removeButton = new JButton();
    JMenuBar jMenuBar1 = new JMenuBar();
    JMenu openMenu = new JMenu();
    JMenu testMenu = new JMenu();
    JMenuItem startMenuItem = new JMenuItem();
    JMenuItem nextMenuItem = new JMenuItem();
    JMenuItem submitMenuItem = new JMenuItem();
    JMenuItem endMenuItem = new JMenuItem();
    JMenuItem showMenuItem = new JMenuItem();
    JMenu OperateMenu = new JMenu();
    JMenuItem addMenuItem = new JMenuItem();
    JMenuItem updateMenuItem = new JMenuItem();
    JMenuItem removeMenuItem = new JMenuItem();
    JMenu difficultyMenu = new JMenu();
    JCheckBoxMenuItem l1CheckBoxMenuItem1 = new JCheckBoxMenuItem();
    JCheckBoxMenuItem l2CheckBoxMenuItem2 = new JCheckBoxMenuItem();
    JCheckBoxMenuItem l3CheckBoxMenuItem3 = new JCheckBoxMenuItem();
    JCheckBoxMenuItem l4CheckBoxMenuItem4 = new JCheckBoxMenuItem();
    JCheckBoxMenuItem l5CheckBoxMenuItem5 = new JCheckBoxMenuItem();
    JCheckBoxMenuItem reCheckBoxMenuItem6 = new JCheckBoxMenuItem();

    /**
     * constructor
     */
    public UserFrame() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        this.setJMenuBar(jMenuBar1);
        setSize(new Dimension(525, 415));
        setTitle("OLTS System");
        Dimension dlgSize = this.getPreferredSize();
        Dimension frmSize = getSize();
        Point loc = getLocation();
        this.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);

        //工具栏
        jToolBar1.setBorder(BorderFactory.createEtchedBorder());
        jToolBar1.setBounds(new Rectangle(2, 1, 477, 27));
        jToolBar1.setLayout(new GridLayout(1, 8));
        startButton.setBorder(BorderFactory.createRaisedBevelBorder());
        startButton.setActionCommand("startButton");
        startButton.setMargin(new Insets(2, 2, 2, 2));
        startButton.setText("Start");
        startButton.addActionListener(new
                                        UserFrame_startMenuItem_actionAdapter(this));
        nextButton.setBorder(BorderFactory.createRaisedBevelBorder());
        nextButton.setActionCommand("nextButton");
        nextButton.setMargin(new Insets(2, 2, 2, 2));
        nextButton.setText("Next");
        submitButton.setBorder(BorderFactory.createRaisedBevelBorder());
        submitButton.setActionCommand("submitButton");
        submitButton.setMargin(new Insets(2, 2, 2, 2));
        submitButton.setText("Submit");
        endButton.setBorder(BorderFactory.createRaisedBevelBorder());
        endButton.setActionCommand("endButton");
        endButton.setMargin(new Insets(2, 2, 2, 2));
        endButton.setText("End");
        endButton.addActionListener(new UserFrame_endButton_actionAdapter(this));
        showscoreButton.setBorder(BorderFactory.createRaisedBevelBorder());
        showscoreButton.setActionCommand("showscoreButton");
        showscoreButton.setMargin(new Insets(2, 2, 2, 2));
        showscoreButton.setText("ShowScore");

        addButton.setBorder(BorderFactory.createRaisedBevelBorder());
        addButton.setActionCommand("addButton");
        addButton.setMargin(new Insets(2, 2, 2, 2));
        addButton.setText("Add");
        addButton.addActionListener(new UserFrame_addMenuItem_actionAdapter(this));

        updateButton.setBorder(BorderFactory.createRaisedBevelBorder());
        updateButton.setActionCommand("updateButton");
        updateButton.setMargin(new Insets(2, 2, 2, 2));
        updateButton.setText("Update");
        updateButton.addActionListener(new
                                         UserFrame_updateMenuItem_actionAdapter(this));
        removeButton.setBorder(BorderFactory.createRaisedBevelBorder());
        removeButton.setActionCommand("removeButton");
        removeButton.setMargin(new Insets(2, 2, 2, 2));
        removeButton.setText("Remove");
        removeButton.addActionListener(new
                                         UserFrame_removeMenuItem_actionAdapter(this));
        //菜单
        openMenu.setText("Open");
        testMenu.setText("Test");
        startMenuItem.setText("Start");
        startMenuItem.addActionListener(new
                                        UserFrame_startMenuItem_actionAdapter(this));

        nextMenuItem.setText("Next");
        submitMenuItem.setText("Submit");
        endMenuItem.setText("End");
        showMenuItem.setText("Show score");
        endMenuItem.addActionListener(new UserFrame_endButton_actionAdapter(this));
        OperateMenu.setText("Operate");
        addMenuItem.setText("Add");
        addMenuItem.addActionListener(new UserFrame_addMenuItem_actionAdapter(this));
        updateMenuItem.setText("Update");
        updateMenuItem.addActionListener(new
                                         UserFrame_updateMenuItem_actionAdapter(this));
        removeMenuItem.setText("Remove");
        removeMenuItem.addActionListener(new
                                         UserFrame_removeMenuItem_actionAdapter(this));
        difficultyMenu.setText("Difficulty");

        l1CheckBoxMenuItem1.setText("1");
        l1CheckBoxMenuItem1.setActionCommand("1");
        l1CheckBoxMenuItem1.addItemListener(new UserFrame_difficultyMenu_itemAdapter(this));
        l2CheckBoxMenuItem2.setText("2");
        l2CheckBoxMenuItem2.setActionCommand("2");
        l2CheckBoxMenuItem2.addItemListener(new UserFrame_difficultyMenu_itemAdapter(this));
        l3CheckBoxMenuItem3.setText("3");
        l3CheckBoxMenuItem3.setActionCommand("3");
        l3CheckBoxMenuItem3.addItemListener(new UserFrame_difficultyMenu_itemAdapter(this));
        l4CheckBoxMenuItem4.setText("4");
        l4CheckBoxMenuItem4.setActionCommand("4");
        l4CheckBoxMenuItem4.addItemListener(new UserFrame_difficultyMenu_itemAdapter(this));
        l5CheckBoxMenuItem5.setText("5");
        l5CheckBoxMenuItem5.setActionCommand("5");
        l5CheckBoxMenuItem5.addItemListener(new UserFrame_difficultyMenu_itemAdapter(this));

        reCheckBoxMenuItem6.setText("Radom");
        reCheckBoxMenuItem6.addItemListener(new
                UserFrame_reCheckBoxMenuItem6_itemAdapter(this));

        jPanel1.setBounds(new Rectangle( -1, 0, 505, 32));
        jPanel1.setLayout(null);
        jToolBar1.add(startButton);
        jToolBar1.add(nextButton);
        jToolBar1.add(submitButton);
        jToolBar1.add(showscoreButton);
        jToolBar1.add(endButton);
        jToolBar1.add(addButton);
        jToolBar1.add(removeButton);
        jToolBar1.add(updateButton);
        contentPane.add(jPanel1);
        jPanel1.add(jToolBar1, null);
        jMenuBar1.add(openMenu);
        jMenuBar1.add(testMenu);
        jMenuBar1.add(OperateMenu);
        openMenu.add(difficultyMenu);
        openMenu.add(reCheckBoxMenuItem6);
        testMenu.add(startMenuItem);
        testMenu.add(nextMenuItem);
        testMenu.add(submitMenuItem);
        testMenu.add(endMenuItem);
        testMenu.add(showMenuItem);
        OperateMenu.add(addMenuItem);
        OperateMenu.add(updateMenuItem);
        OperateMenu.add(removeMenuItem);
        difficultyMenu.add(l1CheckBoxMenuItem1);
        difficultyMenu.add(l2CheckBoxMenuItem2);
        difficultyMenu.add(l3CheckBoxMenuItem3);
        difficultyMenu.add(l4CheckBoxMenuItem4);
        difficultyMenu.add(l5CheckBoxMenuItem5);
   }

    /**
     * 菜单radom的处理,调用RadomCommand命令进行处理,将得到的符合条件的题目赋给试卷属性
     * @param e ItemEvent  事件
     */
   public void reCheckBoxMenuItem6_itemStateChanged(ItemEvent e) {
        this.test = new ArrayList();
        RadomCommand rc = new RadomCommand(this.test);
        this.test =  rc.excute();
    }
     /**
      * 处理开始菜单和开始按钮,调用StartCommand命令来处理
      * @param e ItemEvent
      */
   public void startMenuItem_actionPerformed(ActionEvent e) {
       //   this.setVisible(false);
          this.dispose();
          StartCommand sc = new StartCommand(this.test);
          sc.excute();
    }
    /**
     * 处理添加菜单和添加按钮,将父框架销毁,生成子框架AddItem,进入子框架
     * @param e ActionEvent  事件
     */
    public void addMenuItem_actionPerformed(ActionEvent e) {
         this.dispose();
         UserFrame addFrame = new AddItem();
         addFrame.setVisible(true);
    }
    /**
     *  处理更新菜单项和更新按钮,将父框架销毁,生成子框架UpdateItem,进入子框架
     * @param e ActionEvent  事件
     */
    public void updateMenuItem_actionPerformed(ActionEvent e) {
           this.dispose();
           UserFrame upFrame = new UpdateItem();
           upFrame.setVisible(true);

    }
    /**
     * 处理删除菜单项和更新按钮,将父框架销毁,生成子框架RemoveItem,进入子框架
     * @param e ActionEvent 事件
     */
    public void removeMenuItem_actionPerformed(ActionEvent e) {
        this.dispose();
        UserFrame reFrame = new RemoveItem();
        reFrame.setVisible(true);

     }
 /**
   * 处理end菜单项和end按钮,销毁框架
   * @param e ActionEvent   事件
   */
  public void endButton_actionPerformed(ActionEvent e) {
         this.dispose();
    }
    /**
     * 处理菜单项difficulty,根据选择的不同难度组成试卷
     * 调用DifficultyCommand来处理此命令,将得到的试卷赋给属性试卷
     * @param e ItemEvent
     */
    public void difficultyMenu_itemStateChanged(ItemEvent e) {
        JCheckBoxMenuItem obj = (JCheckBoxMenuItem) e.getSource();
      //勾选
        if(obj.getState()== true){
        DifficultyCommand dc = new DifficultyCommand(this.test);
        this.test = dc.excute(obj.getActionCommand());
      }
      //不勾选,生成空白试卷
      else this.test = new ArrayList();
   }
}


///////////////////////////////////////////////////////////////////////////////////
class UserFrame_endButton_actionAdapter implements ActionListener {
    private UserFrame adaptee;
    UserFrame_endButton_actionAdapter(UserFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.endButton_actionPerformed(e);
    }
}


class UserFrame_addMenuItem_actionAdapter implements ActionListener {
    private UserFrame adaptee;
    UserFrame_addMenuItem_actionAdapter(UserFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.addMenuItem_actionPerformed(e);
    }
}


class UserFrame_updateMenuItem_actionAdapter implements ActionListener {
    private UserFrame adaptee;
    UserFrame_updateMenuItem_actionAdapter(UserFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.updateMenuItem_actionPerformed(e);
    }
}


class UserFrame_removeMenuItem_actionAdapter implements ActionListener {
    private UserFrame adaptee;
    UserFrame_removeMenuItem_actionAdapter(UserFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.removeMenuItem_actionPerformed(e);
    }
}


class UserFrame_startMenuItem_actionAdapter implements ActionListener {
    private UserFrame adaptee;
    UserFrame_startMenuItem_actionAdapter(UserFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.startMenuItem_actionPerformed(e);
    }
}


class UserFrame_reCheckBoxMenuItem6_itemAdapter implements ItemListener {
    private UserFrame adaptee;
    UserFrame_reCheckBoxMenuItem6_itemAdapter(UserFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void itemStateChanged(ItemEvent e) {
        adaptee.reCheckBoxMenuItem6_itemStateChanged(e);
    }
}


class UserFrame_difficultyMenu_itemAdapter implements ItemListener {
    private UserFrame adaptee;
    UserFrame_difficultyMenu_itemAdapter(UserFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void itemStateChanged(ItemEvent e) {
        adaptee.difficultyMenu_itemStateChanged(e);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -