首页 > 其他分享 >2023-11-29

2023-11-29

时间:2023-11-29 20:58:53浏览次数:27  
标签:11 int list 29 add 2023 new JLabel exercise

package rjgz.suanTi;

import rjgz.BinaryOperation;
import rjgz.Exercise;

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

import static rjgz.suanTi.JDBC.add;
import static rjgz.suanTi.JDBC.selectByTiKu;


public class testFile {
    public static void main(String[] args) {

        // 创建一个顶层容器 JFrame
        JFrame frame = new JFrame("Swing Example");

        // 设置窗口的大小和位置
        frame.setBounds(100, 100, 900, 600);

        // 设置窗口关闭时的行为
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 创建一个面板 JPanel,并设置 BoxLayout 布局管理器
        JPanel panel = new JPanel();
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
        Exercise exercise=shenChen();
        int len=exercise.list.size()/5;
        // 添加文本框和输入框
        JTextField[][] textFields = new JTextField[exercise.list.size()][5];
        JLabel[][] labels=new JLabel[exercise.list.size()][5];
        for (int i = 0; i < len; i++) {
            JPanel rowPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
            for (int j = 0; j < 5; j++) {
                if (j != 4) {
                    BinaryOperation b = exercise.list.get(i * 5 + j);
                    String equation = b.getLeft_operand() + " " + b.getOperator() + " " + b.getRight_operand()
                            + " " + b.getOperator2() + " " + b.getThird_operand() + "=";
                    JLabel label = new JLabel(equation);
                    rowPanel.add(label);
                    labels[i][j]=label;

                    JTextField textField = new JTextField(10);
                    rowPanel.add(textField);
                    textFields[i][j] = textField;
                } else {
                    JLabel label = new JLabel("第" + (i + 1) + "行:");
                    rowPanel.add(label);
                }
            }
            panel.add(rowPanel);
        }
        JPanel rowPanel3 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        JLabel jLabel=new JLabel("正确率为"+""+"%");
        rowPanel3.add(jLabel);
        JLabel TiKu=new JLabel("输入题库名");
        rowPanel3.add(TiKu);
        JTextField ShuRu=new JTextField();
        ShuRu.setColumns(10);
        rowPanel3.add(ShuRu);
        JButton extract= new JButton("刷题库");
        rowPanel3.add(extract);
        panel.add(rowPanel3);

        // 创建一个按钮 JButton,用于刷新数据
        JPanel rowPanel2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        JButton refreshButton = new JButton("刷新");
        rowPanel2.add(refreshButton);
        JButton submitButton= new JButton("提交");
        rowPanel2.add(submitButton);
        JButton deposit= new JButton("存入题库");
        rowPanel2.add(deposit);

        panel.add(rowPanel2);
        // 为按钮添加事件监听器
        refreshButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Exercise exercise=shenChen();
                // 修改文本框中的内容
                for (int i = 0; i < len; i++) {
                    for (int j = 0; j < 5; j++) {
                        if (j != 4) {
                            JTextField inputField = textFields[i][j];
                            inputField.setText("");

                            BinaryOperation b = exercise.list.get(i * 5 + j);
                            String equation = b.getLeft_operand() + " " + b.getOperator() + " " + b.getRight_operand()
                                    + " " + b.getOperator2() + " " + b.getThird_operand() + "=";
                            labels[i][j].setText(equation);
                        }
                    }
                }
            }
        });

        submitButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                for (int i = 0; i < len; i++) {
                    for (int j = 0; j < 5; j++) {
                        if (j != 4) {
                            JTextField inputField = textFields[i][j];
                            int UserInput= Integer.parseInt(inputField.getText());
                            exercise.list.get(i*5+j).setUserValue(UserInput);

                        }
                    }
                }
                jLabel.setText("正确率为: "+exercise.ReturnAccuracy()*100+"%");
            }
        });

        deposit.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                for (BinaryOperation b:
                     exercise.list) {
                    add(b);
                }
            }
        });
        extract.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int UserTiKu= Integer.parseInt(ShuRu.getText());
                exercise.list=selectByTiKu(UserTiKu);
                // 修改文本框中的内容
                for (int i = 0; i < len; i++) {
                    for (int j = 0; j < 5; j++) {
                        if (j != 4) {
                            JTextField inputField = textFields[i][j];
                            inputField.setText("");

                            BinaryOperation b = exercise.list.get(i * 5 + j);
                            String equation = b.getLeft_operand() + " " + b.getOperator() + " " + b.getRight_operand()
                                    + " " + b.getOperator2() + " " + b.getThird_operand() + "=";
                            labels[i][j].setText(equation);
                        }
                    }
                }
            }
        });
        // 将面板添加到窗口中
        frame.getContentPane().add(panel);

        // 显示窗口
        frame.setVisible(true);
    }
    public static Exercise shenChen(){
        int fanWei=1;
        int fanWei2=5;
        Exercise exercise=new Exercise();
        for (int i = 0; i < 10; i++) {
            BinaryOperation b=new BinaryOperation(fanWei2,fanWei);
            while (!exercise.Check(b)&&b.getValue()<0&&b.getValue()>100){
                b=new BinaryOperation(fanWei2,fanWei);
            }
            exercise.list.add(b);
        }
        return exercise;
    }
}

 

标签:11,int,list,29,add,2023,new,JLabel,exercise
From: https://www.cnblogs.com/wllovelmbforever/p/17865808.html

相关文章

  • 2023.11.29 日记 Take it easy
    很不想把文化课写到日记里。但今天有点烦了。考试考的内容是要通过刷题得知的,并非学习。我已经在别的平台抱怨过很多次当今教育现状了,无济于事是肯定的,反而会打消学习的积极性。由于训练原因欠了很多课,再加上两个学校的进度不同、考试时间不同,我的学习成果实在像是被虫蛀了一样......
  • 23.11.29(代码大全2读书笔记)
    *第一部分打好基础 第一章欢迎进入软件构建的世界 >软件构建的定义:包括编码与调试、单元测试、规划构建、集成等,没有给出一个明确的定义。>软件构建的重要性:软件构建是编写大型项目最重要的、不可或缺的部分。 第二章用隐喻来更充分地理解软件开发 > 对软件开......
  • P5311 [Ynoi2011] 成都七中
    我永远喜欢数据结构。题目传送门给出\(n\)个点的树,点有颜色\(a_i\)。有\(q\)次询问,每次询问给出\(l,r,x\),求保留\([l,r]\)范围内的节点时,\(x\)所在联通块中有多少种本质不同的颜色。询问之间相互独立。不保留一个点的定义是,将这个点以及与其相邻的边全部删除。......
  • Codeforces Round 829 (Div. 1)A1. Make Nonzero Sum (easy version)(思维找规律)
    先考虑无解的情况:当n为奇数时无解相邻的两个元素一定可以变成0\[a[i]!=a[i+1]时,分成[i,i],和[i+1,i+1]\]\[a[i]=a[i+1]时,分成[i,i+1]\]这两种情况对答案的贡献都是0,当n为奇数时我们总会有一个没办法凑成0.#include<bits/stdc++.h>#definelsp<<1#......
  • DASCTF 2023 & 0X401七月暑期挑战赛-web复现
    别问为什么不复现十一月的那个比赛,因为不会wwwww。EzFlask进去就有源码了,先cv到编辑规范看一下:importuuidfromflaskimportFlask,request,session,jsonfromsecretimportblack_listapp=Flask(__name__)app.secret_key=str(uuid.uuid4())defcheck(data):......
  • 2023-2024-1 学期20232423《网络空间安全导论》第四周学习总结
    教材学习——系统安全基础系统安全的两层含义:①以系统思维应对安全问题;②应对系统所面临的安全问题4.1系统安全概述时代在不断发展,系统安全也在不断演变:从二十世纪四十年代的第一台计算机,五十年代的第一个操作系统,六十年代的第一个分时系统CTSS、第一个安全操作系统Adept-50......
  • 2023-2024-1 20232404 《网络空间安全导论》第4周学习总结
    教材学习内容总结4.1系统安全概述世界上第一台通用电子计算机ENIAC,是纯粹的硬件裸机。世界上第一个安全系统Adept-50,属于分时系统。自外观察法是通过观察系统输入输出来分析系统的行为。一个系统是一个统一的整体,系统中的元素紧密关联。自内观察者属于系统的某个部分。......
  • 11.26-task5-条件
    条件if语句if(condition):后面为condition为trueelse:后面为false布尔表达式的使用:我们知道当布尔值为true是返回值为1,false时返回值为0他的返回值意思是:检查n是否为负数,若为负数n<0为true=1n>=0为false=0,+前面就为1*-n,+后就为0,为正数时逻辑相同ifelse推导式......
  • 11.29-task5-代码风格
    代码风格代码风格介绍修饰代码的前提是代码没有bug。。。两幅图中的代码对比,显然后一幅图的代码更加简洁,易懂。也方便之后很长时间后的再理解。缩进tab==4个空格当函数有多参数时换行当一个语句的字符数过长,要换行运算符对齐导入规范导入时要遵循同级文......
  • 每日总结20231129
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周三,今天只有一节课,就是软件构造,这节课是实验课,这周是第十三周了,马上也迎来了这学期的末尾,大作业的题目也发布了。2、今天下午洗了洗澡,刷了刷抖音,然后把衣服洗了,又发了篇博客。3、今天晚上打算把大数据的最后......