java swing实现简单计算器界面

作者:哥兜兜里有泡泡糖 时间:2021-11-09 12:47:05 

本文实例为大家分享了java swing实现简单计算器界面的具体代码,供大家参考,具体内容如下

已经学习了一部分的swing知识,现在综合运用里面的部分知识来实现一个计算器的界面。

运用到的知识:

1.常用顶层容器 JFrame类 的使用
2.常用中间容器 JPanel类 的使用
3.单行文本框的实现类 JTextField类 的使用
4.按钮的实现类 JButton类 的使用
5.边框布局管理器 的使用
6.网格布局管理器 的使用

基本思路:

1.创建1个窗口f1
2.创建1个文本框t1
3.创建内层面板p3,保存文本框t1
4.创建16个按钮
5.创建内层面板p2,设置为网格布局,用于保存16个按钮
6.创建外层面板p1,设置为边框布局,北部保存p3,中部保存p2

下面是是具体的代码实现,可以直接运行

import javax.swing.JFrame;   //顶层容器 (框架)
import javax.swing.JPanel; //中间容器 (嵌板)最常用的面板
import javax.swing.JTextField; //单行文本框的实现类
import javax.swing.JButton;  //按钮
import javax.swing.border.EmptyBorder; 
//需要用EmptyBorder类来设置面板的边框属性
import javax.swing.SwingConstants; 
//SwingConstants是一个通常用于在屏幕上定位(位置)或定向(方向)组件的常量的集合
import java.awt.*; //布局管理器的类在这里面

public class calculator
{
    public static void main(String[] args) 
    {
        JFrame f1 = new JFrame("计算器");  //创建顶层容器(窗口)
        f1.setSize(250, 300);        //设置窗口大小

        JPanel p1 = new JPanel(new BorderLayout(5,5)); //创建一个面板
        //里面的new BorderLayout(5,5)是设置面板的布局(边框布局)
        //其中(5,5)的第1个5表示上下控件间距,第2个表示左右控件间距
        
        p1.setBorder(new EmptyBorder(5,5,5,5));   //设置边界距离  border 边界
        //面板的setBorder函数,用于设置面板边缘向内收缩宽度
        //里面的EmtyBorder(5,5,5,5)表示面板上,左,下,右各向内收缩 5个像素
        
        JTextField t1 = new JTextField(); //创建一个单行文本框
        t1.setColumns(10);  //这个用于设置文本框的列数  Columns 列
        t1.setHorizontalAlignment(SwingConstants.RIGHT); //设置文本框右对齐     
        //Horizontal 水平的        Alignment 对齐  记两个单词
        
        JPanel p2 = new JPanel(new GridLayout(4,4,5,5));//创建第二个面板
        //其中设置其布局为网格布局,(第一个4表示1行4个控件)
        //第2个4表示1列4个控件,第1个5表示上下控件间隔为5,第2个5表示左右控件间隔为5(像素)

        JButton b1 = new JButton("7");    //创建16个按钮
        JButton b2 = new JButton("8");
        JButton b3 = new JButton("9");
        JButton b4 = new JButton("/");
        
        JButton b5 = new JButton("4");
        JButton b6 = new JButton("5");
        JButton b7 = new JButton("6");
        JButton b8 = new JButton("*");

        JButton b9 = new JButton("1");
        JButton b10 = new JButton("2");
        JButton b11 = new JButton("3");
        JButton b12 = new JButton("-");
        
        JButton b13 = new JButton("0");
        JButton b14 = new JButton(".");
        JButton b15 = new JButton("=");
        JButton b16 = new JButton("+");

        p2.add(b1);    //将16个按钮全部添加到网格布局的面板p2中
        p2.add(b2);
        p2.add(b3);
        p2.add(b4);
        
        p2.add(b5);
        p2.add(b6);
        p2.add(b7);
        p2.add(b8);
        
        p2.add(b9);
        p2.add(b10);
        p2.add(b11);
        p2.add(b12);
        
        p2.add(b13);
        p2.add(b14);
        p2.add(b15);
        p2.add(b16);
        
        JPanel p3 = new JPanel();   //创建第三个面板,用于保存之前的文本框t1
        p3.add(t1);     //将文本框t1添加到面板p3中
        p1.add(p3,BorderLayout.NORTH);//将p3添加到 为边框布局面板的p1的北部
        p1.add(p2,BorderLayout.CENTER); //将p2添加到面板的中部
        
        f1.add(p1);           //p1面板添加到窗口
        f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭时操作
        f1.setVisible(true);   //设置可见
    }
}

运行结果:

java swing实现简单计算器界面

来源:https://blog.csdn.net/weixin_44512194/article/details/93254608

标签:java,swing,计算器
0
投稿

猜你喜欢

  • mybatis的if判断integer问题

    2022-12-23 20:15:41
  • JDBC实现学生管理系统

    2023-01-22 13:22:19
  • iOS新浪微博、腾讯微博分享功能实例

    2023-06-16 09:15:53
  • SpringBoot下使用MyBatis-Puls代码生成器的方法

    2023-11-25 17:07:07
  • 优化SpringBoot程序启动速度的实现

    2023-09-28 13:04:52
  • Spring Boot自动注入的原理分析

    2023-03-29 04:19:44
  • 关于springboot配置文件密文解密方式

    2023-11-09 04:21:24
  • Spring自动配置之condition条件判断下篇

    2023-10-15 10:04:59
  • spring security动态配置url权限的2种实现方法

    2021-06-25 15:31:12
  • Java如何实现http接口参数和返回值加密

    2023-08-23 12:28:37
  • IDEA新建springboot项目时未生成pom.xml文件的解决操作

    2022-08-22 03:16:31
  • Java设计模式之访问者模式使用场景及代码示例

    2021-06-27 13:34:25
  • Android模块化中数据传递/路由跳转实现示例

    2023-06-29 03:12:06
  • Java SpringBoot实现文件上传功能的示例代码

    2022-05-23 02:54:46
  • Java之JFrame输出Helloworld实例

    2022-01-19 16:40:52
  • Spring Security基于json登录实现过程详解

    2023-12-07 07:15:18
  • Java流程控制之选择结构

    2021-10-24 08:12:50
  • Java函数式编程(十二):监控文件修改

    2022-08-11 10:21:01
  • Java IO流 文件传输基础

    2023-08-24 13:27:11
  • 关于Java中HashCode方法的深入理解

    2022-05-28 03:29:33
  • asp之家 软件编程 m.aspxhome.com