java仿windows7计算器界面,java制作仿win7计算器之一计算器的图形界面的设计
再结合网上各路神人及之前写的博客Swing编程方面步骤,如下:
package calPack;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame{//自定义类文件,必须继承JFrame框架
//定义组件
JMenuBar jmb;
JMenu[] jm;
JMenuItem[] jmi;
JTextField jtf;
JButton[] jb;
public static void main(String[] args)// 添加主函数,并调用类的构造函数
{
new Calculator();
}
public Calculator()//添加构造函数
{
//创建组件
jmb = new JMenuBar();
jm = new JMenu[3];
jm[0] = new JMenu("查看(V)");
jm[1] = new JMenu("编辑(E)");
jm[2] = new JMenu("帮助(H)");
jmi = new JMenuItem[4];
jmi[0] = new JMenuItem("标准型(T)");
jmi[1] = new JMenuItem("复制(C)");
jmi[2] = new JMenuItem("粘贴(P)");
jmi[3] = new JMenuItem("关于(A)");
jtf = new JTextField("0");
jb = new JButton[28];
jb[0] = new JButton("MC");
jb[1] = new JButton("MR");
jb[2] = new JButton("MS");
jb[3] = new JButton("M+");
jb[4] = new JButton("M-");
jb[5] = new JButton("Backspace");
jb[6] = new JButton("CE");
jb[7] = new JButton("C");
jb[8] = new JButton("+/-");
jb[9] = new JButton("sqrt");
jb[10] = new JButton("7");
jb[11] = new JButton("8");
jb[12] = new JButton("9");
jb[13] = new JButton("/");
jb[14] = new JButton("%");
jb[15] = new JButton("4");
jb[16] = new JButton("5");
jb[17] = new JButton("6");
jb[18] = new JButton("*");
jb[19] = new JButton("1/x");
jb[20] = new JButton("1");
jb[21] = new JButton("2");
jb[22] = new JButton("3");
jb[23] = new JButton("-");
jb[24] = new JButton("=");
jb[25] = new JButton("0");
jb[26] = new JButton(".");
jb[27] = new JButton("+");
initGUI();//设置布局,添加组件
//设置窗口属性
this.setTitle("使用java制作的简易计算器By毛二");//基础属性
this.setIconImage(new ImageIcon("熊猫.jpg").getImage());//设置窗口标题
this.setSize(400,250);//设置大小,按像素
this.setLocation(200,200);//设置初始位置,默认是屏幕最左上角
this.setVisible(true);//让它显示,位置可变
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认到关闭操作,不然java虚拟机还没也关闭
}
//设置布局。
private void initGUI() {
this.setJMenuBar(jmb);
jmb.add(jm[0]);
jmb.add(jm[1]);
jmb.add(jm[2]);
jm[0].add(jmi[0]);
jm[1].add(jmi[1]);
jm[1].add(jmi[2]);
jm[2].add(jmi[3]);
jtf.setEditable(false);//文本框不可编辑
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setLayout(gridbag);
c.weightx = 0.01;//容器上的计算器各个部件成一个布局,这个参数,可以把容器和窗体合二为一,不会出现窗体过大而容器还留有空隙
c.weighty = 0.01;
c.fill = GridBagConstraints.BOTH;
//文本框
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 5;
c.gridheight = 2;
add(jtf,c);
//MC
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 1; // 横占一个单元格
c.gridheight = 1; // 列占一个单元格
addButton(jb[0],gridbag,c);//添加按钮到面板布局
//MR
c.gridx = 1; //换行,放置组件,只需要修改行的参数就行,其他参数暂时不变。
addButton(jb[1],gridbag,c);
//MS
c.gridx = 2;
addButton(jb[2],gridbag,c);
//M+
c.gridx = 3;
addButton(jb[3],gridbag,c);
//M-
c.gridx = 4;
addButton(jb[4],gridbag,c);
//Backspace
c.gridx = 0;
c.gridy = 3;
addButton(jb[5],gridbag,c);
//CE
c.gridx = 1;
addButton(jb[6],gridbag,c);
//C
c.gridx = 2;
addButton(jb[7],gridbag,c);
//+/-
c.gridx = 3;
addButton(jb[8],gridbag,c);
//Sqrt
c.gridx = 4;
addButton(jb[9],gridbag,c);
//7
c.gridx = 0;
c.gridy = 4;
addButton(jb[10],gridbag,c);
//8
c.gridx = 1;
addButton(jb[11],gridbag,c);
//9
c.gridx = 2;
addButton(jb[12],gridbag,c);
///
c.gridx = 3;
addButton(jb[13],gridbag,c);
//%
c.gridx = 4;
addButton(jb[14],gridbag,c);
//4
c.gridx = 0;
c.gridy = 5;
addButton(jb[15],gridbag,c);
//5
c.gridx = 1;
addButton(jb[16],gridbag,c);
//6
c.gridx = 2;
addButton(jb[17],gridbag,c);
//*
c.gridx = 3;
addButton(jb[18],gridbag,c);
//1/x
c.gridx = 4;
addButton(jb[19],gridbag,c);
//1
c.gridx = 0;
c.gridy = 6;
addButton(jb[20],gridbag,c);
//2
c.gridx = 1;
addButton(jb[21],gridbag,c);
//3
c.gridx = 2;
addButton(jb[22],gridbag,c);
//-
c.gridx = 3;
addButton(jb[23],gridbag,c);
//=
c.gridx = 4;
c.gridy = 6;
c.gridheight = 2; //重新设置列,列占二个单元格
addButton(jb[24],gridbag,c);
//0
c.gridx = 0;
c.gridy = 7;
c.gridwidth = 2; // 重新设置横,横占二个单元格
c.gridheight = 1; // 恢复列,列占一个单元格
addButton(jb[25],gridbag,c);
//.
c.gridx = 2;
c.gridwidth = 1; // 恢复横,横占一个单元格
addButton(jb[26],gridbag,c);
//+
c.gridx = 3;
addButton(jb[27],gridbag,c);
}
//添加按钮到面板布局
private void addButton(JButton jButton, GridBagLayout gridbag,
GridBagConstraints c) {
gridbag.setConstraints(jButton, c);
add(jButton);
}
}
效果如下:
java仿windows7计算器界面,java制作仿win7计算器之一计算器的图形界面的设计相关推荐
- centos运行java图形化界面_CentOS设置默认启动命令行(不启动图形界面)
CentOS中如何进入图形界面和文字界面,Linux真正的服务器是不会运行图形化界面的,怎么样才能在不卸载桌面的前提下开机直接进入命令界面呢?(我安装的是CentOS 6.5)下面就简单介绍以下: 一 ...
- linux命令界面下载kettle,kettle在linux环境中打开图形界面-Go语言中文社区
kettle在linux环境中打开图形界面 kettle数据转换的时候需要图形界面 当运行./spoon.sh时,如果没有图形界面,会出现下面的结果 ./spoon.sh [root@localhos ...
- java界面化二叉排序树_层次序创建二叉树(图形界面和控制台输入实现)
1 2018.11.7 2 XT3 4 /** 5 * 功能:构造二叉树6 * 说明:7 * 1.主函数输入模式有两种,BT参数 true 图形界面,false 控制台输入8 * 2.构造树是按层次遍 ...
- java管理系统界面_java编程实现一个学生信息管理系统的图形界面
展开全部 package 学生管理界面32313133353236313431303231363533e78988e69d8331333236376538; import java.awt.Borde ...
- python qt5 增加文本框_Python用PyQt5制作弹出式输入框,Qt图形界面编程之QInputDialog...
前面内容,我们介绍了PyQt5的一些常用基本控件. 温故而知新 计数器QSpinBox使用详解,Python用PyQt5制作图形界面基础控件篇 Python用PyQt5实现多种弹出消息框,QMessa ...
- oracle rac 图形化界面,oracle 10g rac配置vipca进不了图形界面,请高手帮忙分析下
oracle用户安装的crs,手动配置vipca,却进不了图形界面 输入./vipca后在屏幕上输出如下: $ ./vipca [main] [15:49:58:56] [VipCA.setDefau ...
- c语言图形界面设定,「分享」C语言如何编写图形界面
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...
- C语言中图形方式界面怎么,「分享」C语言如何编写图形界面
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...
- 能用c语言编写图形界面吗,「分享」C语言如何编写图形界面
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...
- c语言可以编写图形界面吗,「分享」C语言如何编写图形界面
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...
最新文章
- 按计算机的地位划分计算机网络可分为,2010年全国自考计算机网络基本原理模拟试卷(三)及答案...
- bzoj 1601 最小生成树
- linux c va_list 32位和64位的差异
- java表格树_Java程序员值得拥有的TreeMap指南
- MySQL innosetup_jdk,tomcat,mysql,innosetup封装
- iOS 开发者证书总结 in-house
- 泛函编程(29)-泛函实用结构:Trampoline-不再怕StackOverflow
- OneAPM 技术公开课:北京,北京!
- GD32F303修改外部25M晶振
- 计算机键盘space键在哪,space键在哪
- 如何使用MSGEQ7音频频谱分析仪芯片
- java设计一个转动的风扇_【scratch玩转wedo入门课】第3课 转动的风扇
- 圣水观音湖规划--------------三维虚拟展示系统
- 主机甲和主机乙之间已建立一个TCP连接,TCP最大段长为1000字节,若主机甲的当前拥塞窗口为4000字节,在主机甲向主机乙连续发送2个最大段后,成功收到主机乙发送的第一段的确认段,确认段中通告的接收
- java神兽传说游戏,了不起的神兽传说
- 台式计算机红外线端口,台式电脑的红外线端口在哪?
- java计算机毕业设计固定资产管理系统源码+mysql数据库+系统+lw文档+部署
- 教女朋友学Python是道送命题
- 教你什么时候用Vue计算属性!!!
- 什么是低格、高格、快格?
热门文章
- AES128加密/解密(单片机可用)
- 微信H5页面前端开发,大多数人都会遇到的几个兼容性坑(转载)
- 相对路径和绝对路径 cd命令 创建和删除目录 rm命令
- Mybatis查询的时间数据中包含T
- sqldeveloper数据insert后如何commit_教程“卡米”后如何保留数据进行自救 ?
- 二阶混合差分的几种差分格式
- 实现一个函数输入123456789,输出123,456,789”
- 张正友相机标定数学原理
- 微信每日推送天气预报每日情话-利用堡塔实现每天自动推送!
- java mp3转g722_wav文件转成g722, g729编码的文件