Java实现Windows计算器界面

 更新时间:2021年06月24日 11:19:07   作者:华墨1024  
这篇文章主要为大家详细介绍了Java实现Windows计算器界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前一段时间在学校简单的学习了Java,对Java这门我第一次接触的面向对象语言有了一定的了解。

一直没时间整理写的东西,今天打算整理下上传下。

Java相对于C来说比较方便的就是用来写界面(PS:但其实Java写的界面也是十分的“有年代感”)

之前学到写界面时的练手程序就是这个计算器界面

程序其实比较简单,主要就是练习界面的排布等

界面:

代码:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class CalTest extends JFrame
{
    //相关的二级容器和控件声明一下
    JTextField showtext;//文本框
    JButton bt1;
    JButton bt2;
    JButton bt3;
    JButton bt4;//四个独立的按钮
    JPanel panel1;//面板1(25个按钮)
    JPanel panel2;//面板2(20个按钮)
    JPanel panel3;//面板3(4个按钮)
    JPanel panel4;//三个单选框
    JButton[] bts1;//左边25个按钮的数组
    JButton[] bts2;//右边20个按钮的数组
    JButton[] bts3;//4个按钮的数组
    JRadioButton[] bts4;//3个单选
   
    public CalTest()
    {
       init();
    }
   
    //初始化窗体及控件的方法
    private void init()
    {
       this.setSize(760,370);
       this.setLayout(null);
       this.setVisible(true);
      
       
       showtext=new JTextField();
       showtext.setLocation(10, 10);
       showtext.setSize(720, 50);
       this.add(showtext);
      
       panel1=new JPanel();
       panel1.setSize(360, 190);
       panel1.setLocation(10, 110);
       panel1.setLayout(new GridLayout(5,5,3,3));//设置面板1 网格布局,4行1列
       bts1=new JButton[25];
       String[] strs1={" ","Inv","In","(",")","Int","sinh","sin","x^2","n!","dms","cosh","cos","x^y","y√x","派","tanh","tan","x^3","3√x","F-E","Exp","Mod","log","10^x"};
       for(int i=0;i<strs1.length;i++)
       {
           bts1[i]=new JButton(strs1[i]);
           panel1.add(bts1[i]);
       }
       this.add(panel1);
      
       panel2=new JPanel();
       panel2.setSize(260, 190);
       panel2.setLocation(400, 70);
       panel2.setLayout(new GridLayout(5,4,3,3));//设置面板2 网格布局,5行4列
       bts2=new JButton[20];
       String[] strs2={"MC","MR","MS","M+","←","CE","C","+/","7","8","9","/","4","5","6","*","1","2","3","-"};
       for(int i=0;i<strs2.length;i++)
       {
           bts2[i]=new JButton(strs2[i]);
           panel2.add(bts2[i]);
       }
       this.add(panel2);
      
       panel3=new JPanel();
       panel3.setSize(55, 150);
       panel3.setLocation(675, 70);
       panel3.setLayout(new GridLayout(4,1,3,3));//设置面板3 网格布局,4行1列
       bts3=new JButton[4];
       String[] strs3={"M-","√","%","1/x"};
       for(int i=0;i<strs3.length;i++)
       {
           bts3[i]=new JButton(strs3[i]);
           panel3.add(bts3[i]);
       }
       this.add(panel3);
      
       panel4=new JPanel();
       panel4.setSize(50, 50);
       panel4.setLocation(20, 80);
       panel4.setLayout(new GridLayout(1,3,3,3));//设置面板3 网格布局,4行1列
       bts4=new JRadioButton[3];
       String[] strs4={"度","弧度","梯度"};
       for(int i=0;i<strs4.length;i++)
       {
           bts4[i]=(JRadioButton) new JRadioButton(strs4[i]);
           panel4.add(bts4[i]);
       }
      
       this.add(panel4);
      
       bt1=new JButton("0");
       bt1.setSize(127, 35);
       bt1.setLocation(400,263);
       this.add(bt1);
      
       bt2=new JButton(".");
       bt2.setSize(62, 35);
       bt2.setLocation(530,263);
       this.add(bt2);
      
       bt3=new JButton("+");
       bt3.setSize(62, 35);
       bt3.setLocation(595,263);
       this.add(bt3);
      
       bt4=new JButton("=");
       bt4.setSize(55, 75);
       bt4.setLocation(675,223);
       this.add(bt4);
      
    }
   
}
 
public class Test {
    public static void main(String[] args) {
       CalTest cal=new CalTest();
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • mybatis plus动态数据源切换及查询过程浅析

    mybatis plus动态数据源切换及查询过程浅析

    这篇文章主要介绍了mybatis plus动态数据源切换及查询过程浅析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 深入浅出Java中的字节流和字符流详解

    深入浅出Java中的字节流和字符流详解

    Java 中的输入输出(I/O)流主要分为字节流和字符流,这两类流为开发者提供了高效的文件读写方式,也解决了不同编码格式下的字符处理问题,本文将带你深入了解字节流和字符流的区别、应用场景以及如何使用它们处理文件操作
    2024-12-12
  • Java中使用HttpPost发送form格式的请求实现代码

    Java中使用HttpPost发送form格式的请求实现代码

    在Java中使用HttpPost发送form格式的请求,可以使用Apache HttpClient库来实现,这篇文章主要介绍了Java中使用HttpPost发送form格式的请求,本文给大家展示示例代码,需要的朋友可以参考下
    2023-08-08
  • Spring boot中filter类不能注入@Autowired变量问题

    Spring boot中filter类不能注入@Autowired变量问题

    这篇文章主要介绍了Spring boot中filter类不能注入@Autowired变量问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • SpringBoot整合log4j日志与HashMap的底层原理解析

    SpringBoot整合log4j日志与HashMap的底层原理解析

    这篇文章主要介绍了SpringBoot整合log4j日志与HashMap的底层原理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Java编程基于快速排序的三个算法题实例代码

    Java编程基于快速排序的三个算法题实例代码

    这篇文章主要介绍了Java编程基于快速排序的三个算法题实例代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • springBoot自动配置的全过程

    springBoot自动配置的全过程

    这篇文章主要介绍了springBoot自动配置的全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Java  解决死锁的方法实例详解

    Java 解决死锁的方法实例详解

    这篇文章主要介绍了java 多线程死锁详解及简单实例的相关资料,需要的朋友可以参考下
    2017-04-04
  • java虚拟机JVM类加载机制原理(面试必问)

    java虚拟机JVM类加载机制原理(面试必问)

    这篇文章主要介绍了面试当中必会问到的java虚拟机JVM类加载机制,非常的详细,有需要的朋友可以借鉴参考下,欢迎多多交流讨论
    2021-08-08
  • 详解java中的四种代码块

    详解java中的四种代码块

    这篇文章主要介绍了详解java中的四种代码块,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12

最新评论