12、Java Swing计算器界面的实现
在本节之前已经详细介绍了 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计算器界面的实现相关推荐
- QT的基本使用(一):计算器界面的简易设计及其简单功能实现
刚开始学习QT,发现QT真的是一个功能很强大的开发软件,所以用QT做了一个简单的计算器来熟悉一下QT. 1.首先,先建立一个QT项目的工程文件:如下 项目保存位置和项目文件名字自己选择,最好是每个项目 ...
- 计算器带菜单java_java GUI 模仿计算器界面的代码有点小问题。(如图,如何让下拉菜单下面的两行压扁一点?)...
代码:importjava.awt.*;publicclassCalculator{publicstaticvoidmain(String[]args){Framef=newFrame("计 ...
- htmltest~计算器界面的实现
通过div+css和部分布局的作用,实现了,如下效果的计算器展示页面 ![C%]R$IGDK4J(%3LJXD3]SY.png ,废话不多说,最主要的还是分享代码: html: <!DOCTYP ...
- 计算器排html页面,htmltest~计算器界面的实现
通过div+css和部分布局的作用,实现了,如下效果的计算器展示页面 ![C%]R$IGDK4J(%3LJXD3]SY.png ,废话不多说,最主要的还是分享代码: html: Title . 计算器 ...
- java包裹邮费计算_GitHub - honghailiang/FreightSystem: 基于Java Swing编写的简易运费计算工具...
FreightSystem 基于java Swing编写的运费计算系统 初始化数据 从excel中读取数据,转化为对象(只保存基础数据:序列号.始发站.目的站.省份.100kg以下(元/kg).100 ...
- 基于Java Swing编写的简易运费计算工具
两年前给媳妇儿做的一个基于Java Swing编写的简易运费计算工具,现开源,关键是思路(https://github.com/honghailiang/FreightSystem).主要有两个部分实 ...
- java 语言程序设计 李尊朝 第12章 Swing 组件
早期的JDK版本中提供了Java抽象窗口工具集(Abstract Window Toolkit, AWT),其目的是为程序员创建图形用户界面提供支持,但是AWT功能有限,因此在后来的JDK版 本中,又 ...
- java中10》》2_(10*(2-8)+10)/(5-5*2)在JAVA语言中,上面的表达式计算结果为(选一项)_学小易找答案...
[单选题]下列哪项不是药物的基本属性?( ) [单选题]已知 1 只共阴极 LED 显示器,其中 a 笔段为字形代码的最低位,若需显示数字 1 ,它的字形代码应为 ( ) (1.0分) [单选题]由于 ...
- 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(加法)编写程序,计算 ...
最新文章
- 【Android工具】更新几个平台视频流媒体播放器测试情况
- BERT Word Embeddings Tutorial
- 现在社交APP发展如何?
- 轻松搞懂sscanf和sprintf
- 斗鱼实名认证 mysql_斗鱼扩展--DouyuRoom使用说明(十四)
- 【solr专题之四】关于VelocityResponseWriter
- function module COM_PRODUCT_GETDETAIL_INTERNAL的内存分配问题
- excel实战应用案例100讲(十)-下载的文件显示“文件已损坏,无法打开”?
- 大厂offer手到擒来,Java面试真题精选
- java设计模式之——代理模式
- JavaScript数组去重的常用方法
- 使用物理硬盘_许迎果 第147期 机械硬盘的物理结构和逻辑结构
- matlab中confcounts,Matlab函数分类汇总—R2011b版.doc
- 如何改计算机二级照片大小,怎么修改照片大小内存,尺寸
- 计算机多媒体技术的主要特征是什么,计算机多媒体技术主要特征
- 西门子PLC丨PROFINET通讯仿真(虚拟通讯)
- LookaHead优化器
- 【小林课堂】【光学】透镜成像应用
- 关于UE4坐标换算涉及到的知识
- Python - matplotlib - ROC曲线(Receiver Operating Characteristic curve)
热门文章
- DL之FastR-CNN:Fast R-CNN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- Py之pytest-shutil:Python库之pytest-shutil简介、安装、使用方法之详细攻略
- ​​​​​​​CV:利用cv2(加载人脸识别xml文件及detectMultiScale函数得到人脸列表)+keras的load_model(加载表情hdf5、性别hdf5)并标注
- 深入浅出统计学 第四五章 离散概率的计算与分布
- [HAOI2006]均分数据
- Bootstrp--一个导航面板切换的实用例子
- numpy中的matrix与array的区别
- C语言,获得堆栈增长方向的一种方法
- 解决iOS设备屏幕切换时页面造成的问题
- SuperSocket 1.5 Documentation译文 2 ----- 实现你的AppServer和AppSession