11.12每日总结

给之前的口算题生成软件构建合适的GUI界面(注意不能直接提交课程案例中的界面代码),并尝试到处exe可运行文件。提交实现效果截图及相关代码。

 

 

 

 

package Operation;

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;


public class Test extends JFrame{

   private static final long serialVersionUID = 1L;  //定义程序序列化,1L是默认定义

   private int max = 50;
   private int a = 0;
   private int b = 0;
   private int c = 0;
   private int count = 1;

   private JLabel JLgross = new JLabel("共5页");
   private JLabel JLpage = new JLabel();  //页码控制
   private JLabel jl1 = new JLabel("  "); //插两个空格进去

   private JLabel JLhour = new JLabel();
   private JLabel JLminute = new JLabel();
   private JLabel JLseconds = new JLabel();

   private JButton JB1 = new JButton("提交");
   private JButton b1 = new JButton("首页");
   private JButton b2 = new JButton("上一页");
   private JButton b3 = new JButton("下一页");
   private JButton b4 = new JButton("尾页");
   private JButton b5 = new JButton("返回");

   private JLabel jl[] = new JLabel[50]; //50个题目标签
   private JTextField jtf[] = new JTextField[50];//50个文本框,存储答案
   private JTextField jta[] = new JTextField[50];//50个文本框,存储结果
   private JPanel pnl1 = new JPanel();
   private JPanel pnl2 = new JPanel();
   private JPanel pnl3 = new JPanel();
   private JPanel pnl4 = new JPanel();

   static CardLayout care = new CardLayout();

   int[] answer=new int[max];
   String[] studentAnswer=new String[max];


   public long time = 0;

   private void Event() {

       //提交试卷按钮
       JB1.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent e) {

               int correctAnswer=0;

               for(int i=0,k=0;i<max;i++,k++){

                   studentAnswer[i]=jtf[k].getText().trim();

                   try {
                       if(Integer.parseInt(studentAnswer[i]) == answer[k]){
                           //将string字符串类型转换为integer整数类型
                           correctAnswer++;
                       }
                   }catch(NumberFormatException u) {

                   }
               }

               int score = 100*(int)correctAnswer/max;

               String s="共50道题\n";
               s=s+"答对"+correctAnswer+"道题\n";
               s=s+"答错"+(max-correctAnswer)+"道题\n";
               s=s+"成绩"+String.format("%d",score)+"分\n";
               s=s+"正确率:"+correctAnswer*100/50+"%\n";
               s=s+"答题时间:"+time+"秒";
               //  Object[] options ={ "确定", "取消" };  //自定义按钮上的文字
               JOptionPane.showMessageDialog(null, s,"本次答题情况",JOptionPane.ERROR_MESSAGE);
               JOptionPane.showMessageDialog(null,  "即将返回首页面", "提示",JOptionPane.ERROR_MESSAGE);
               // JOptionPane.showOptionDialog(null, "即将返回首页面", "提示",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
               new MainMenu();
               setVisible(false);
               dispose();


           }
       });

       //首页
       b1.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               care.first(pnl3);
               count = 1;
               JLpage.setText("第" + count + "页");
           }
       });

       //前一页
       b2.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               care.previous(pnl3);
               if ( count > 1 && count <=5) {
                   count --;
               }else {
                   count = 5 ;
               }
               JLpage.setText("第" + count + "页");
           }
       });

       //下一页
       b3.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){

               care.next(pnl3);
               if ( count >= 1 && count < 5 ) {
                   count ++;
               }else {
                   count = 1 ;
               }
               JLpage.setText("第" + count + "页");
           }
       });

       //尾页
       b4.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               care.last(pnl3);
               count = 5;
               JLpage.setText("第" + count + "页");
           }
       });
       b5.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               JOptionPane.showMessageDialog(null, "是否返回首页","提示",JOptionPane.ERROR_MESSAGE);
               new MainMenu();
               setVisible(false);
               dispose();
           }
       });
   }


   public Test() {

       this.setTitle("开始答题");
       this.setSize(830, 500);
       this.setLocationRelativeTo(null);  //将此窗口置于屏幕的中央
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       this.setLayout(new BorderLayout(20,20)); //设置 各组件间水平垂直间隔为20像素



       pnl1.add(JLhour);
       pnl1.add(JLminute);
       pnl1.add(JLseconds);

       JLpage.setText("第" + count + "页");

       pnl2.setLayout(new FlowLayout());
       pnl2.add(JLgross);
       pnl2.add(JLpage);//页数
       pnl2.add(jl1);

       pnl2.add(pnl1);
       pnl2.add(JB1);

       this.add(pnl2,BorderLayout.NORTH);

       pnl3.setLayout(care);
       this.add(pnl3,BorderLayout.CENTER);
       pnl3.setBorder(BorderFactory.createLoweredBevelBorder()); //边框

       for(int i = 0 , k = 0; i < 5 ; i++ ) { // 总页数改为5页
           JPanel p = new JPanel();
           p.setLayout(new GridLayout(5,2,20,20)); //网格布局5行2列,水平垂直间距都设为20像素
           for(int j = 0 ; j < 10 ; j++) { // 每页输出10道题目
               a=(int)(Math.random()*100+1);
               b=(int)(Math.random()*100+1);
               String random = "";
               String[] doc = {"+", "-"};
               int index = (int) (Math.random() * doc.length);
               random = doc[index];
               if(random=="-") {
                   if(a>b) {
                       jl[k] = new JLabel(a + random + b + "=");
                       jl[k].setFont(new Font("黑体",Font.BOLD,20));
                       p.add(jl[k]);
                       answer[k] = a - b ;
                   }else {
                       jl[k] = new JLabel(b + random + a + "=");
                       jl[k].setFont(new Font("黑体",Font.BOLD,20));
                       p.add(jl[k]);
                       answer[k] = b - a ;
                   }
               }
               else if(random=="+") {
                   jl[k] = new JLabel(a + random + b + "=");
                   jl[k].setFont(new Font("黑体",Font.BOLD,20));
                   p.add(jl[k]);
                   answer[k] = a + b ;
               }
               jtf[k] = new JTextField(6);
               p.add(jtf[k]);
               jtf[k].setText(null);
               k++;
           }
           pnl3.add(p);
       }

       pnl4.setLayout(new GridLayout(1,4));

       pnl4.add(b1);
       pnl4.add(b2);
       pnl4.add(b3);
       pnl4.add(b4);
       pnl4.add(b5);
       this.add(pnl4, BorderLayout.SOUTH);

       //美化界面
       try {
           UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       } catch (Exception e) {
           e.printStackTrace();
       }

       Event();

       setVisible(true);

   }

}







package Operation;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MainMenu extends JFrame {

   private static final long serialVersionUID = 1L;  //定义程序序列化,1L是默认定义

   protected static String s1;
   protected static String s2;
   protected static String s3;

   private JLabel jl1 = new JLabel("欢迎使用");
   private JLabel jl3 = new JLabel("    ");
   private JLabel jl4 = new JLabel("        ");
   private JButton JB1 = new JButton("开始答题");
   private JButton JE = new JButton("退出登录");
   private JPanel jp1 = new JPanel();
   private JPanel jp2 = new JPanel();
   private JPanel jp3 = new JPanel();
   private JPanel jp4 = new JPanel();
   private JPanel jp5 = new JPanel();
   private JPanel jp6 = new JPanel();
   private JPanel jp7 = new JPanel();
   private void Event() {

       JB1.addActionListener(new ActionListener() {

           @Override
           public void actionPerformed(ActionEvent arg0) {
               // TODO Auto-generated method stub

               setVisible(false);
               dispose();

               new Test();
           }


       });

       JE.addActionListener(new ActionListener() {

           @Override
           public void actionPerformed(ActionEvent arg0) {
               // TODO Auto-generated method stub
               setVisible(false);
               dispose();



           }


       });
   }

   public MainMenu() {
       jl1.setFont(new Font("黑体", Font.BOLD, 35));
       jl1.setForeground(Color.gray);
       jl1.setHorizontalAlignment(JLabel.CENTER); // 水平居中对齐
       jl1.setVerticalAlignment(JLabel.CENTER);


       JB1.setFont(new Font("宋体", Font.PLAIN, 25));
       JE.setFont(new Font("宋体", Font.PLAIN, 25));

       jp1.add(jl1);
       // ...

       jp7.setLayout(new GridLayout(2, 1, 20, 20)); // 两行一列,设置组件之间的水平和垂直间距

       jp7.setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0)); // 设置上下留白

       this.setTitle("欢迎使用口算答题系统");
       this.setSize(500, 450);
       this.setLocationRelativeTo(null);  //将此窗口置于屏幕的中央
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       this.setLayout(new BorderLayout(20,20));

       jp1.setLayout(new GridBagLayout());
       this.add(jp1,BorderLayout.NORTH);




       jp7.add(JB1);

       jp7.add(JE);
       this.add(jp7,BorderLayout.SOUTH);


       //美化界面
       try {
           UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       } catch (Exception e) {
           e.printStackTrace();
       }

       Event();

       this.setVisible(true);
   }
   public static void main(String[] args) {

       new MainMenu();
   }


}

  

package Operation;

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;


public class Test extends JFrame{

   private static final long serialVersionUID = 1L;  //定义程序序列化,1L是默认定义

   private int max = 50;
   private int a = 0;
   private int b = 0;
   private int c = 0;
   private int count = 1;

   private JLabel JLgross = new JLabel("共5页");
   private JLabel JLpage = new JLabel();  //页码控制
   private JLabel jl1 = new JLabel("  "); //插两个空格进去

   private JLabel JLhour = new JLabel();
   private JLabel JLminute = new JLabel();
   private JLabel JLseconds = new JLabel();

   private JButton JB1 = new JButton("提交");
   private JButton b1 = new JButton("首页");
   private JButton b2 = new JButton("上一页");
   private JButton b3 = new JButton("下一页");
   private JButton b4 = new JButton("尾页");
   private JButton b5 = new JButton("返回");

   private JLabel jl[] = new JLabel[50]; //50个题目标签
   private JTextField jtf[] = new JTextField[50];//50个文本框,存储答案
   private JTextField jta[] = new JTextField[50];//50个文本框,存储结果
   private JPanel pnl1 = new JPanel();
   private JPanel pnl2 = new JPanel();
   private JPanel pnl3 = new JPanel();
   private JPanel pnl4 = new JPanel();

   static CardLayout care = new CardLayout();

   int[] answer=new int[max];
   String[] studentAnswer=new String[max];


   public long time = 0;

   private void Event() {

       //提交试卷按钮
       JB1.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent e) {

               int correctAnswer=0;

               for(int i=0,k=0;i<max;i++,k++){

                   studentAnswer[i]=jtf[k].getText().trim();

                   try {
                       if(Integer.parseInt(studentAnswer[i]) == answer[k]){
                           //将string字符串类型转换为integer整数类型
                           correctAnswer++;
                       }
                   }catch(NumberFormatException u) {

                   }
               }

               int score = 100*(int)correctAnswer/max;

               String s="共50道题\n";
               s=s+"答对"+correctAnswer+"道题\n";
               s=s+"答错"+(max-correctAnswer)+"道题\n";
               s=s+"成绩"+String.format("%d",score)+"分\n";
               s=s+"正确率:"+correctAnswer*100/50+"%\n";
               s=s+"答题时间:"+time+"秒";
               //  Object[] options ={ "确定", "取消" };  //自定义按钮上的文字
               JOptionPane.showMessageDialog(null, s,"本次答题情况",JOptionPane.ERROR_MESSAGE);
               JOptionPane.showMessageDialog(null,  "即将返回首页面", "提示",JOptionPane.ERROR_MESSAGE);
               // JOptionPane.showOptionDialog(null, "即将返回首页面", "提示",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
               new MainMenu();
               setVisible(false);
               dispose();


           }
       });

       //首页
       b1.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               care.first(pnl3);
               count = 1;
               JLpage.setText("第" + count + "页");
           }
       });

       //前一页
       b2.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               care.previous(pnl3);
               if ( count > 1 && count <=5) {
                   count --;
               }else {
                   count = 5 ;
               }
               JLpage.setText("第" + count + "页");
           }
       });

       //下一页
       b3.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){

               care.next(pnl3);
               if ( count >= 1 && count < 5 ) {
                   count ++;
               }else {
                   count = 1 ;
               }
               JLpage.setText("第" + count + "页");
           }
       });

       //尾页
       b4.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               care.last(pnl3);
               count = 5;
               JLpage.setText("第" + count + "页");
           }
       });
       b5.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               JOptionPane.showMessageDialog(null, "是否返回首页","提示",JOptionPane.ERROR_MESSAGE);
               new MainMenu();
               setVisible(false);
               dispose();
           }
       });
   }


   public Test() {

       this.setTitle("开始答题");
       this.setSize(830, 500);
       this.setLocationRelativeTo(null);  //将此窗口置于屏幕的中央
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       this.setLayout(new BorderLayout(20,20)); //设置 各组件间水平垂直间隔为20像素



       pnl1.add(JLhour);
       pnl1.add(JLminute);
       pnl1.add(JLseconds);

       JLpage.setText("第" + count + "页");

       pnl2.setLayout(new FlowLayout());
       pnl2.add(JLgross);
       pnl2.add(JLpage);//页数
       pnl2.add(jl1);

       pnl2.add(pnl1);
       pnl2.add(JB1);

       this.add(pnl2,BorderLayout.NORTH);

       pnl3.setLayout(care);
       this.add(pnl3,BorderLayout.CENTER);
       pnl3.setBorder(BorderFactory.createLoweredBevelBorder()); //边框

       for(int i = 0 , k = 0; i < 5 ; i++ ) { // 总页数改为5页
           JPanel p = new JPanel();
           p.setLayout(new GridLayout(5,2,20,20)); //网格布局5行2列,水平垂直间距都设为20像素
           for(int j = 0 ; j < 10 ; j++) { // 每页输出10道题目
               a=(int)(Math.random()*100+1);
               b=(int)(Math.random()*100+1);
               String random = "";
               String[] doc = {"+", "-"};
               int index = (int) (Math.random() * doc.length);
               random = doc[index];
               if(random=="-") {
                   if(a>b) {
                       jl[k] = new JLabel(a + random + b + "=");
                       jl[k].setFont(new Font("黑体",Font.BOLD,20));
                       p.add(jl[k]);
                       answer[k] = a - b ;
                   }else {
                       jl[k] = new JLabel(b + random + a + "=");
                       jl[k].setFont(new Font("黑体",Font.BOLD,20));
                       p.add(jl[k]);
                       answer[k] = b - a ;
                   }
               }
               else if(random=="+") {
                   jl[k] = new JLabel(a + random + b + "=");
                   jl[k].setFont(new Font("黑体",Font.BOLD,20));
                   p.add(jl[k]);
                   answer[k] = a + b ;
               }
               jtf[k] = new JTextField(6);
               p.add(jtf[k]);
               jtf[k].setText(null);
               k++;
           }
           pnl3.add(p);
       }

       pnl4.setLayout(new GridLayout(1,4));

       pnl4.add(b1);
       pnl4.add(b2);
       pnl4.add(b3);
       pnl4.add(b4);
       pnl4.add(b5);
       this.add(pnl4, BorderLayout.SOUTH);

       //美化界面
       try {
           UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       } catch (Exception e) {
           e.printStackTrace();
       }

       Event();

       setVisible(true);

   }

}







package Operation;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MainMenu extends JFrame {

   private static final long serialVersionUID = 1L;  //定义程序序列化,1L是默认定义

   protected static String s1;
   protected static String s2;
   protected static String s3;

   private JLabel jl1 = new JLabel("欢迎使用");
   private JLabel jl3 = new JLabel("    ");
   private JLabel jl4 = new JLabel("        ");
   private JButton JB1 = new JButton("开始答题");
   private JButton JE = new JButton("退出登录");
   private JPanel jp1 = new JPanel();
   private JPanel jp2 = new JPanel();
   private JPanel jp3 = new JPanel();
   private JPanel jp4 = new JPanel();
   private JPanel jp5 = new JPanel();
   private JPanel jp6 = new JPanel();
   private JPanel jp7 = new JPanel();
   private void Event() {

       JB1.addActionListener(new ActionListener() {

           @Override
           public void actionPerformed(ActionEvent arg0) {
               // TODO Auto-generated method stub

               setVisible(false);
               dispose();

               new Test();
           }


       });

       JE.addActionListener(new ActionListener() {

           @Override
           public void actionPerformed(ActionEvent arg0) {
               // TODO Auto-generated method stub
               setVisible(false);
               dispose();



           }


       });
   }

   public MainMenu() {
       jl1.setFont(new Font("黑体", Font.BOLD, 35));
       jl1.setForeground(Color.gray);
       jl1.setHorizontalAlignment(JLabel.CENTER); // 水平居中对齐
       jl1.setVerticalAlignment(JLabel.CENTER);


       JB1.setFont(new Font("宋体", Font.PLAIN, 25));
       JE.setFont(new Font("宋体", Font.PLAIN, 25));

       jp1.add(jl1);
       // ...

       jp7.setLayout(new GridLayout(2, 1, 20, 20)); // 两行一列,设置组件之间的水平和垂直间距

       jp7.setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0)); // 设置上下留白

       this.setTitle("欢迎使用口算答题系统");
       this.setSize(500, 450);
       this.setLocationRelativeTo(null);  //将此窗口置于屏幕的中央
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       this.setLayout(new BorderLayout(20,20));

       jp1.setLayout(new GridBagLayout());
       this.add(jp1,BorderLayout.NORTH);




       jp7.add(JB1);

       jp7.add(JE);
       this.add(jp7,BorderLayout.SOUTH);


       //美化界面
       try {
           UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       } catch (Exception e) {
           e.printStackTrace();
       }

       Event();

       this.setVisible(true);
   }
   public static void main(String[] args) {

       new MainMenu();
   }


}

  

package Operation;

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;


public class Test extends JFrame{

   private static final long serialVersionUID = 1L;  //定义程序序列化,1L是默认定义

   private int max = 50;
   private int a = 0;
   private int b = 0;
   private int c = 0;
   private int count = 1;

   private JLabel JLgross = new JLabel("共5页");
   private JLabel JLpage = new JLabel();  //页码控制
   private JLabel jl1 = new JLabel("  "); //插两个空格进去

   private JLabel JLhour = new JLabel();
   private JLabel JLminute = new JLabel();
   private JLabel JLseconds = new JLabel();

   private JButton JB1 = new JButton("提交");
   private JButton b1 = new JButton("首页");
   private JButton b2 = new JButton("上一页");
   private JButton b3 = new JButton("下一页");
   private JButton b4 = new JButton("尾页");
   private JButton b5 = new JButton("返回");

   private JLabel jl[] = new JLabel[50]; //50个题目标签
   private JTextField jtf[] = new JTextField[50];//50个文本框,存储答案
   private JTextField jta[] = new JTextField[50];//50个文本框,存储结果
   private JPanel pnl1 = new JPanel();
   private JPanel pnl2 = new JPanel();
   private JPanel pnl3 = new JPanel();
   private JPanel pnl4 = new JPanel();

   static CardLayout care = new CardLayout();

   int[] answer=new int[max];
   String[] studentAnswer=new String[max];


   public long time = 0;

   private void Event() {

       //提交试卷按钮
       JB1.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent e) {

               int correctAnswer=0;

               for(int i=0,k=0;i<max;i++,k++){

                   studentAnswer[i]=jtf[k].getText().trim();

                   try {
                       if(Integer.parseInt(studentAnswer[i]) == answer[k]){
                           //将string字符串类型转换为integer整数类型
                           correctAnswer++;
                       }
                   }catch(NumberFormatException u) {

                   }
               }

               int score = 100*(int)correctAnswer/max;

               String s="共50道题\n";
               s=s+"答对"+correctAnswer+"道题\n";
               s=s+"答错"+(max-correctAnswer)+"道题\n";
               s=s+"成绩"+String.format("%d",score)+"分\n";
               s=s+"正确率:"+correctAnswer*100/50+"%\n";
               s=s+"答题时间:"+time+"秒";
               //  Object[] options ={ "确定", "取消" };  //自定义按钮上的文字
               JOptionPane.showMessageDialog(null, s,"本次答题情况",JOptionPane.ERROR_MESSAGE);
               JOptionPane.showMessageDialog(null,  "即将返回首页面", "提示",JOptionPane.ERROR_MESSAGE);
               // JOptionPane.showOptionDialog(null, "即将返回首页面", "提示",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
               new MainMenu();
               setVisible(false);
               dispose();


           }
       });

       //首页
       b1.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               care.first(pnl3);
               count = 1;
               JLpage.setText("第" + count + "页");
           }
       });

       //前一页
       b2.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               care.previous(pnl3);
               if ( count > 1 && count <=5) {
                   count --;
               }else {
                   count = 5 ;
               }
               JLpage.setText("第" + count + "页");
           }
       });

       //下一页
       b3.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){

               care.next(pnl3);
               if ( count >= 1 && count < 5 ) {
                   count ++;
               }else {
                   count = 1 ;
               }
               JLpage.setText("第" + count + "页");
           }
       });

       //尾页
       b4.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               care.last(pnl3);
               count = 5;
               JLpage.setText("第" + count + "页");
           }
       });
       b5.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               JOptionPane.showMessageDialog(null, "是否返回首页","提示",JOptionPane.ERROR_MESSAGE);
               new MainMenu();
               setVisible(false);
               dispose();
           }
       });
   }


   public Test() {

       this.setTitle("开始答题");
       this.setSize(830, 500);
       this.setLocationRelativeTo(null);  //将此窗口置于屏幕的中央
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       this.setLayout(new BorderLayout(20,20)); //设置 各组件间水平垂直间隔为20像素



       pnl1.add(JLhour);
       pnl1.add(JLminute);
       pnl1.add(JLseconds);

       JLpage.setText("第" + count + "页");

       pnl2.setLayout(new FlowLayout());
       pnl2.add(JLgross);
       pnl2.add(JLpage);//页数
       pnl2.add(jl1);

       pnl2.add(pnl1);
       pnl2.add(JB1);

       this.add(pnl2,BorderLayout.NORTH);

       pnl3.setLayout(care);
       this.add(pnl3,BorderLayout.CENTER);
       pnl3.setBorder(BorderFactory.createLoweredBevelBorder()); //边框

       for(int i = 0 , k = 0; i < 5 ; i++ ) { // 总页数改为5页
           JPanel p = new JPanel();
           p.setLayout(new GridLayout(5,2,20,20)); //网格布局5行2列,水平垂直间距都设为20像素
           for(int j = 0 ; j < 10 ; j++) { // 每页输出10道题目
               a=(int)(Math.random()*100+1);
               b=(int)(Math.random()*100+1);
               String random = "";
               String[] doc = {"+", "-"};
               int index = (int) (Math.random() * doc.length);
               random = doc[index];
               if(random=="-") {
                   if(a>b) {
                       jl[k] = new JLabel(a + random + b + "=");
                       jl[k].setFont(new Font("黑体",Font.BOLD,20));
                       p.add(jl[k]);
                       answer[k] = a - b ;
                   }else {
                       jl[k] = new JLabel(b + random + a + "=");
                       jl[k].setFont(new Font("黑体",Font.BOLD,20));
                       p.add(jl[k]);
                       answer[k] = b - a ;
                   }
               }
               else if(random=="+") {
                   jl[k] = new JLabel(a + random + b + "=");
                   jl[k].setFont(new Font("黑体",Font.BOLD,20));
                   p.add(jl[k]);
                   answer[k] = a + b ;
               }
               jtf[k] = new JTextField(6);
               p.add(jtf[k]);
               jtf[k].setText(null);
               k++;
           }
           pnl3.add(p);
       }

       pnl4.setLayout(new GridLayout(1,4));

       pnl4.add(b1);
       pnl4.add(b2);
       pnl4.add(b3);
       pnl4.add(b4);
       pnl4.add(b5);
       this.add(pnl4, BorderLayout.SOUTH);

       //美化界面
       try {
           UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       } catch (Exception e) {
           e.printStackTrace();
       }

       Event();

       setVisible(true);

   }

}







package Operation;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MainMenu extends JFrame {

   private static final long serialVersionUID = 1L;  //定义程序序列化,1L是默认定义

   protected static String s1;
   protected static String s2;
   protected static String s3;

   private JLabel jl1 = new JLabel("欢迎使用");
   private JLabel jl3 = new JLabel("    ");
   private JLabel jl4 = new JLabel("        ");
   private JButton JB1 = new JButton("开始答题");
   private JButton JE = new JButton("退出登录");
   private JPanel jp1 = new JPanel();
   private JPanel jp2 = new JPanel();
   private JPanel jp3 = new JPanel();
   private JPanel jp4 = new JPanel();
   private JPanel jp5 = new JPanel();
   private JPanel jp6 = new JPanel();
   private JPanel jp7 = new JPanel();
   private void Event() {

       JB1.addActionListener(new ActionListener() {

           @Override
           public void actionPerformed(ActionEvent arg0) {
               // TODO Auto-generated method stub

               setVisible(false);
               dispose();

               new Test();
           }


       });

       JE.addActionListener(new ActionListener() {

           @Override
           public void actionPerformed(ActionEvent arg0) {
               // TODO Auto-generated method stub
               setVisible(false);
               dispose();



           }


       });
   }

   public MainMenu() {
       jl1.setFont(new Font("黑体", Font.BOLD, 35));
       jl1.setForeground(Color.gray);
       jl1.setHorizontalAlignment(JLabel.CENTER); // 水平居中对齐
       jl1.setVerticalAlignment(JLabel.CENTER);


       JB1.setFont(new Font("宋体", Font.PLAIN, 25));
       JE.setFont(new Font("宋体", Font.PLAIN, 25));

       jp1.add(jl1);
       // ...

       jp7.setLayout(new GridLayout(2, 1, 20, 20)); // 两行一列,设置组件之间的水平和垂直间距

       jp7.setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0)); // 设置上下留白

       this.setTitle("欢迎使用口算答题系统");
       this.setSize(500, 450);
       this.setLocationRelativeTo(null);  //将此窗口置于屏幕的中央
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       this.setLayout(new BorderLayout(20,20));

       jp1.setLayout(new GridBagLayout());
       this.add(jp1,BorderLayout.NORTH);




       jp7.add(JB1);

       jp7.add(JE);
       this.add(jp7,BorderLayout.SOUTH);


       //美化界面
       try {
           UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       } catch (Exception e) {
           e.printStackTrace();
       }

       Event();

       this.setVisible(true);
   }
   public static void main(String[] args) {

       new MainMenu();
   }


}

  

posted @ 2023-11-12 22:06  漏网鲨鱼  阅读(8)  评论(0)    收藏  举报