首页 > 其他分享 >GUI--JFrame学习02(实现加减法)

GUI--JFrame学习02(实现加减法)

时间:2023-11-23 17:12:36浏览次数:34  
标签:02 setBounds JFrame -- 55 add 70 new root

实现代码

package gui;

import javax.swing.*;
import javax.swing.plaf.FontUIResource;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;
import java.util.Random;

public class TestGui extends JFrame {
    String strs[]=new String[8];
//    int rs[] = new int[8];
    JPanel root;
    JLabel n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12;
    JTextField t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12;
    int rs1,rs2,rs3,rs4,rs5,rs6,rs7,rs8;
    JButton postBtn,resetBtn;
    //窗体初始化
    public TestGui(){

        //定义面板
        super("简单口算题生成器");
        root = new JPanel();
        setContentPane(root);
        setLayout(null);
        InitGlobalFont(new Font("仿宋", Font.PLAIN, 30));

        //获取题目
        n1 = new JLabel(create());
        n1.setBounds(25,10,90,60);
        root.add(n1);
        t1=new JTextField();
        t1.setBounds(120,10,70,55);
        t1.setBackground(Color.WHITE);
        root.add(t1);
        n2 = new JLabel(create());
        n2.setBounds(220,10,90,60);
        root.add(n2);
        t2=new JTextField();
        t2.setBounds(320,10,70,55);
        t2.setBackground(Color.WHITE);
        root.add(t2);
        n3 = new JLabel(create());
        n3.setBounds(25,80,90,60);
        root.add(n3);
        t3=new JTextField();
        t3.setBounds(120,80,70,55);
        t3.setBackground(Color.WHITE);
        root.add(t3);
        n4 = new JLabel(create());
        n4.setBounds(220,80,90,60);
        root.add(n4);
        t4 = new JTextField();
        t4.setBackground(Color.WHITE);
        t4.setBounds(320,80,70,55);
        root.add(t4);
        //80+70=150
        n5=new JLabel(create());
        n5.setBounds(25,150,90,60);
        root.add(n5);
        t5=new JTextField();
        t5.setBackground(Color.WHITE);
        t5.setBounds(120,150,70,55);
        root.add(t5);
        n6 = new JLabel(create());
        n6.setBounds(220,150,90,60);
        root.add(n6);
        t6 = new JTextField();
        t6.setBounds(320,150,70,55);
        t6.setBackground(Color.WHITE);
        root.add(t6);
        //150+70=220
        n7=new JLabel(create());
        n7.setBounds(25,220,90,60);
        root.add(n7);
        t7=new JTextField();
        t7.setBackground(Color.WHITE);
        t7.setBounds(120,220,70,55);
        root.add(t7);
        n8 = new JLabel(create());
        n8.setBounds(220,220,90,60);
        root.add(n8);
        t8 = new JTextField();
        t8.setBounds(320,220,70,55);
        t8.setBackground(Color.WHITE);
        root.add(t8);
        //220+70=290
        n9=new JLabel(create());
        n9.setBounds(25,290,90,60);
        root.add(n9);
        t9=new JTextField();
        t9.setBackground(Color.WHITE);
        t9.setBounds(120,290,70,55);
        root.add(t9);
        n10 = new JLabel(create());
        n10.setBounds(220,290,90,60);
        root.add(n10);
        t10 = new JTextField();
        t10.setBounds(320,290,70,55);
        t10.setBackground(Color.WHITE);
        root.add(t10);
        //290+70=360
        n11=new JLabel(create());
        n11.setBounds(25,360,90,60);
        root.add(n11);
        t11=new JTextField();
        t11.setBackground(Color.WHITE);
        t11.setBounds(120,360,70,55);
        root.add(t11);
        n12 = new JLabel(create());
        n12.setBounds(220,360,90,60);
        root.add(n12);
        t12 = new JTextField();
        t12.setBounds(320,360,70,55);
        t12.setBackground(Color.WHITE);
        root.add(t12);
        postBtn = new JButton("提交");
        postBtn.setBounds(100,450,110,55);
        postBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                JOptionPane.showMessageDialog(null,"提交成功","提示信息",JOptionPane.INFORMATION_MESSAGE);
            }
        });
        root.add(postBtn);
        resetBtn = new JButton("重置");
        resetBtn.setBounds(250,450,110,55);
        resetBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                //隐藏旧窗口
                setVisible(false);
                new TestGui();

            }
        });
        root.add(resetBtn);


        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setBounds(400,300,450,600);
        setVisible(true);
    }

    //主函数
    public static void main(String[] args) {
        new TestGui();
    }

    //生成算数式
    public String create(){
//        int num=0;
        int x,y,z;
        Random rand=new Random();
        x= rand.nextInt(100)+1;
        y=rand.nextInt(100)+1;
        z=rand.nextInt(2);
        String str="";
        if (z==0){
//            num=x+y;
            str=x+"+"+y+"=";
            return str;
        }else {
//            num=x-y;
            str=x+"-"+y+"=";
            return str;
        }
    }

    //统一字体
    private static void InitGlobalFont(Font font) {
        FontUIResource fontRes = new FontUIResource(font);
        for (Enumeration<Object> keys = UIManager.getDefaults().keys();
             keys.hasMoreElements(); ) {
            Object key = keys.nextElement();
            Object value = UIManager.get(key);
            if (value instanceof FontUIResource) {
                UIManager.put(key, fontRes);
            }
        }
    }


}

 

标签:02,setBounds,JFrame,--,55,add,70,new,root
From: https://www.cnblogs.com/hmy22466/p/17843042.html

相关文章

  • Spring
    Overview<ulclass="tree"> <li>  <detailsopen>   <summary>Giantplanets</summary>   <ul>    <li>     <details>      <summary>Gasgiants</summary>      <......
  • Fortran 中write函数用法详解及格式化输出简介
    目录write函数用法详解及格式化输出简介write的最基础用法print格式化输出常用格式控制符详解Iw.[m]Fw.dEw.d[Ee]Dw.dAwnXLw字符串/不常用格式控制符详解Gw.d[Ee]TcTLnTRnSP,SSBN,BZkPBw[.m]Ow[.m]Zw[.m]使用print进行格式化输出附录format命令格式控制符号表参考write函数......
  • Springboot 自动发送邮件
      完成Springboot配置发件邮箱,自动给其他邮箱发送邮件功能一、创建springboot基础项目,引入依赖<!--SpringBoot邮件依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency&g......
  • Redis进一步学习
    Redis         AOF(Append-OnlyFile)和RDB(RedisDataBase)是Redis数据库持久化的两种主要方式,它们都用于在Redis服务器重启时保留数据。AOF(Append-OnlyFile):想象一下AOF就像是数据库的操作日志,记录了所有对Redis数据的写操作。每当有一个写操作发生时,比......
  • [SCOI2012] 滑雪
    Description给定一个带边权有向图。现在从点\(1\)开始走,走的过程中可以无代价回溯任意多步,求在经过最多点的情况下(重复的点算一次),最小边权和是多少。Solution先从点\(1\)BFS,能走到的点就是第一小问答案。根据回溯条件,在最优答案中,每条边至多走一次(考虑走两次的话,一定有一次......
  • 蓝牙 相关信息 模块信息
    ST代理-NBIOT无线模块-lora-nbz智能水表-5G工业网关模块-NB燃气表-利尔达科技集团(lierda.com)什么是BLE(BluetoothLowEnerge)?-知乎(zhihu.com)......
  • HAL_RS485发送接收_DMA:编码器
    RS485编码器使用RS485读取多个编码器接收数据:空闲中断+DMA发送数据:DMA配置串口:基本与串口通信一致,增加接收和发送DMA,正常模式,另外增加485使能IO      接收数据:使能空闲中断        __HAL_UART_ENABLE_IT(&huart3,UART_IT_IDLE);        _......
  • 视频监控平台EasyCVR+智能分析网关+物联网,联合打造智能环卫监控系统
    一、背景介绍城市作为人们生活的载体,有着有无数楼宇和四通八达的街道,这些建筑的整洁与卫生的背后,是无数环卫工作人员的努力。环卫工人通过清理垃圾、打扫街道、清洗公共设施等工作,保持城市的整洁和卫生,防止垃圾和污染对城市环境和居民健康造成危害。二、现存问题当前城市环卫......
  • 对八数码的一些解释
    先简要解释一下从任何一个状态到目标状态的移动步数不可能小于所有数字当前位置与目标位置的曼哈顿距离之和考虑一次移动,只能让一个数字的曼哈顿距离加一或者减一,而目标状态所有数字的曼哈顿距离都是0,所以得证我们可以用普通的BFS做这道题目,由于边权是1,所以第一次搜索到的时候一......
  • ABAP物料特征值 批次特征值取数
    这里用到两次replace拼接物料和批次之间的空格"批次特征值SELECTa~matnr,a~charg,b~objek,c~atwrt,e~zcwmsFROM@lt_dataASaINNERJOINinobASbONb~klart='023'ANDb~obtab='MCH1'ANDobjek=replace(replace(concat(rpad(a~matn......