在本节之前已经详细介绍了 Swing 中容器、布局管理器以及常用的基本组件。本案例将综合运用这些知识实现一个计算器的布局。在本实例中使用两种布局管理器来进行界面设计。

计算器界面可以分成两部分,即显示区和键盘区。

显示区可以使用文本框组件,
键盘区则是由很多按钮组成,
可以使用网格布局管理器。

详细的实现过程如下。

(1) 新建一个继承自 JFrame 的 CalculatorDemo 类。

(2) 为类添加构造方法和 main() 方法,主要代码如下所示。

import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
public class CalculatorDemo extends JFrame
{private JPanel contentPane;    //内容面板private JTextField textField;    //文本框public CalculatorDemo(){};    //构造方法public static void main(String[] args){CalculatorDemo frame=new CalculatorDemo();frame.setVisible(true);}
}

(3) 在构造方法中设置窗口的标题和大小等属性,然后使用边界面板向北部添加一个 JTextField 组件,主要代码如下所示。

public CalculatorDemo()
{setTitle("计算器");    //设置窗体的标题setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //设置窗体退出时操作setBounds(100, 100, 250, 200);    //设置窗体位置和大小contentPane=new JPanel();    //创建内容面板contentPane.setBorder(new EmptyBorder(5,5,5,5));    //设置面板的边框contentPane.setLayout(new BorderLayout(0,0));    //设置内容面板为边界布局setContentPane(contentPane);    //应用内容面板JPanel panel1=new JPanel();    //新建面板用于保存文本框contentPane.add(panel1,BorderLayout.NORTH);    //将面板放置在边界布局的北部textField=new JTextField();    //新建文本框textField.setHorizontalAlignment(SwingConstants.RIGHT);    //文本框中的文本使用右对齐panel1.add(textField);    //将文本框增加到面板中textField.setColumns(18);    //设置文本框的列数是18

(4) 接下来使用网格布局管理器添加多个按钮作为计算器的键盘区,主要代码如下所示。

JPanel panel2=new JPanel();    //新建面板用于保存按钮
contentPane.add(panel2, BorderLayout.CENTER);    //将面板放置在边界布局的中央
panel2.setLayout(new GridLayout(4,4,5,5));    //面板使用网格4X4布局
JButton button01=new JButton("7");    //新建按钮
panel2.add(button01);    //应用按钮
JButton button02=new JButton("8");    //新建按钮
panel2.add(button02);    //应用按钮
JButton button03=new JButton("9");    //新建按钮
panel2.add(button03);    //应用按钮
JButton button04=new JButton("+");    //新建按钮
panel2.add(button04);    //应用按钮
JButton button05=new JButton("4");    //新建按钮
panel2.add(button05);    //应用按钮
JButton button06=new JButton("5");    //新建按钮
panel2.add(button06);    //应用按钮
JButton button07=new JButton("6");    //新建按钮
panel2.add(button07);    //应用按钮
JButton button08=new JButton("-");    //新建按钮
panel2.add(button08);    //应用按钮
JButton button09=new JButton("3");    //新建按钮
panel2.add(button09);    //应用按钮
JButton button10=new JButton("2");    //新建按钮
panel2.add(button10);    //应用按钮
JButton button11=new JButton("1");    //新建按钮
panel2.add(button11);    //应用按钮
JButton button12=new JButton("*");    //新建按钮
panel2.add(button12);    //应用按钮
JButton button13=new JButton("0");    //新建按钮
panel2.add(button13);    //应用按钮
JButton button14=new JButton(".");    //新建按钮
panel2.add(button14);    //应用按钮
JButton button15=new JButton("=");    //新建按钮
panel2.add(button15);    //应用按钮
JButton button16=new JButton("/");    //新建按钮
panel2.add(button16);    //应用按钮

(5) 最终程序的运行效果如图 1 所示。

12、Java Swing计算器界面的实现相关推荐

  1. QT的基本使用(一):计算器界面的简易设计及其简单功能实现

    刚开始学习QT,发现QT真的是一个功能很强大的开发软件,所以用QT做了一个简单的计算器来熟悉一下QT. 1.首先,先建立一个QT项目的工程文件:如下 项目保存位置和项目文件名字自己选择,最好是每个项目 ...

  2. 计算器带菜单java_java GUI 模仿计算器界面的代码有点小问题。(如图,如何让下拉菜单下面的两行压扁一点?)...

    代码:importjava.awt.*;publicclassCalculator{publicstaticvoidmain(String[]args){Framef=newFrame("计 ...

  3. htmltest~计算器界面的实现

    通过div+css和部分布局的作用,实现了,如下效果的计算器展示页面 ![C%]R$IGDK4J(%3LJXD3]SY.png ,废话不多说,最主要的还是分享代码: html: <!DOCTYP ...

  4. 计算器排html页面,htmltest~计算器界面的实现

    通过div+css和部分布局的作用,实现了,如下效果的计算器展示页面 ![C%]R$IGDK4J(%3LJXD3]SY.png ,废话不多说,最主要的还是分享代码: html: Title . 计算器 ...

  5. java包裹邮费计算_GitHub - honghailiang/FreightSystem: 基于Java Swing编写的简易运费计算工具...

    FreightSystem 基于java Swing编写的运费计算系统 初始化数据 从excel中读取数据,转化为对象(只保存基础数据:序列号.始发站.目的站.省份.100kg以下(元/kg).100 ...

  6. 基于Java Swing编写的简易运费计算工具

    两年前给媳妇儿做的一个基于Java Swing编写的简易运费计算工具,现开源,关键是思路(https://github.com/honghailiang/FreightSystem).主要有两个部分实 ...

  7. java 语言程序设计 李尊朝 第12章 Swing 组件

    早期的JDK版本中提供了Java抽象窗口工具集(Abstract Window Toolkit, AWT),其目的是为程序员创建图形用户界面提供支持,但是AWT功能有限,因此在后来的JDK版 本中,又 ...

  8. java中10》》2_(10*(2-8)+10)/(5-5*2)在JAVA语言中,上面的表达式计算结果为(选一项)_学小易找答案...

    [单选题]下列哪项不是药物的基本属性?( ) [单选题]已知 1 只共阴极 LED 显示器,其中 a 笔段为字形代码的最低位,若需显示数字 1 ,它的字形代码应为 ( ) (1.0分) [单选题]由于 ...

  9. Java黑皮书课后题第5章:**5.35(加法)编写程序,计算下面的和:1/(1+根2) + 1/(根2+根3) + 1/(根3+根4)+……1/(根624+根625)

    @[TOC](5.35(加法)编写程序,计算下面的和:1/(1+根2) + 1/(根2+根3) + 1/(根3+根4)+--1/(根624+根625)) 题目 题目概述 5.35(加法)编写程序,计算 ...

最新文章

  1. 【Android工具】更新几个平台视频流媒体播放器测试情况
  2. BERT Word Embeddings Tutorial
  3. 现在社交APP发展如何?
  4. 轻松搞懂sscanf和sprintf
  5. 斗鱼实名认证 mysql_斗鱼扩展--DouyuRoom使用说明(十四)
  6. 【solr专题之四】关于VelocityResponseWriter
  7. function module COM_PRODUCT_GETDETAIL_INTERNAL的内存分配问题
  8. excel实战应用案例100讲(十)-下载的文件显示“文件已损坏,无法打开”?
  9. 大厂offer手到擒来,Java面试真题精选
  10. java设计模式之——代理模式
  11. JavaScript数组去重的常用方法
  12. 使用物理硬盘_许迎果 第147期 机械硬盘的物理结构和逻辑结构
  13. matlab中confcounts,Matlab函数分类汇总—R2011b版.doc
  14. 如何改计算机二级照片大小,怎么修改照片大小内存,尺寸
  15. 计算机多媒体技术的主要特征是什么,计算机多媒体技术主要特征
  16. 西门子PLC丨PROFINET通讯仿真(虚拟通讯)
  17. LookaHead优化器
  18. 【小林课堂】【光学】透镜成像应用
  19. 关于UE4坐标换算涉及到的知识
  20. Python - matplotlib - ROC曲线(Receiver Operating Characteristic curve)

热门文章

  1. DL之FastR-CNN:Fast R-CNN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  2. Py之pytest-shutil:Python库之pytest-shutil简介、安装、使用方法之详细攻略
  3. ​​​​​​​CV:利用cv2(加载人脸识别xml文件及detectMultiScale函数得到人脸列表)+keras的load_model(加载表情hdf5、性别hdf5)并标注
  4. 深入浅出统计学 第四五章 离散概率的计算与分布
  5. [HAOI2006]均分数据
  6. Bootstrp--一个导航面板切换的实用例子
  7. numpy中的matrix与array的区别
  8. C语言,获得堆栈增长方向的一种方法
  9. 解决iOS设备屏幕切换时页面造成的问题
  10. SuperSocket 1.5 Documentation译文 2 ----- 实现你的AppServer和AppSession