再结合网上各路神人及之前写的博客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计算器之一计算器的图形界面的设计相关推荐

  1. centos运行java图形化界面_CentOS设置默认启动命令行(不启动图形界面)

    CentOS中如何进入图形界面和文字界面,Linux真正的服务器是不会运行图形化界面的,怎么样才能在不卸载桌面的前提下开机直接进入命令界面呢?(我安装的是CentOS 6.5)下面就简单介绍以下: 一 ...

  2. linux命令界面下载kettle,kettle在linux环境中打开图形界面-Go语言中文社区

    kettle在linux环境中打开图形界面 kettle数据转换的时候需要图形界面 当运行./spoon.sh时,如果没有图形界面,会出现下面的结果 ./spoon.sh [root@localhos ...

  3. java界面化二叉排序树_层次序创建二叉树(图形界面和控制台输入实现)

    1 2018.11.7 2 XT3 4 /** 5 * 功能:构造二叉树6 * 说明:7 * 1.主函数输入模式有两种,BT参数 true 图形界面,false 控制台输入8 * 2.构造树是按层次遍 ...

  4. java管理系统界面_java编程实现一个学生信息管理系统的图形界面

    展开全部 package 学生管理界面32313133353236313431303231363533e78988e69d8331333236376538; import java.awt.Borde ...

  5. python qt5 增加文本框_Python用PyQt5制作弹出式输入框,Qt图形界面编程之QInputDialog...

    前面内容,我们介绍了PyQt5的一些常用基本控件. 温故而知新 计数器QSpinBox使用详解,Python用PyQt5制作图形界面基础控件篇 Python用PyQt5实现多种弹出消息框,QMessa ...

  6. oracle rac 图形化界面,oracle 10g rac配置vipca进不了图形界面,请高手帮忙分析下

    oracle用户安装的crs,手动配置vipca,却进不了图形界面 输入./vipca后在屏幕上输出如下: $ ./vipca [main] [15:49:58:56] [VipCA.setDefau ...

  7. c语言图形界面设定,「分享」C语言如何编写图形界面

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...

  8. C语言中图形方式界面怎么,「分享」C语言如何编写图形界面

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...

  9. 能用c语言编写图形界面吗,「分享」C语言如何编写图形界面

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...

  10. c语言可以编写图形界面吗,「分享」C语言如何编写图形界面

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...

最新文章

  1. 按计算机的地位划分计算机网络可分为,2010年全国自考计算机网络基本原理模拟试卷(三)及答案...
  2. bzoj 1601 最小生成树
  3. linux c va_list 32位和64位的差异
  4. java表格树_Java程序员值得拥有的TreeMap指南
  5. MySQL innosetup_jdk,tomcat,mysql,innosetup封装
  6. iOS 开发者证书总结 in-house
  7. 泛函编程(29)-泛函实用结构:Trampoline-不再怕StackOverflow
  8. OneAPM 技术公开课:北京,北京!
  9. GD32F303修改外部25M晶振
  10. 计算机键盘space键在哪,space键在哪
  11. 如何使用MSGEQ7音频频谱分析仪芯片
  12. java设计一个转动的风扇_【scratch玩转wedo入门课】第3课 转动的风扇
  13. 圣水观音湖规划--------------三维虚拟展示系统
  14. 主机甲和主机乙之间已建立一个TCP连接,TCP最大段长为1000字节,若主机甲的当前拥塞窗口为4000字节,在主机甲向主机乙连续发送2个最大段后,成功收到主机乙发送的第一段的确认段,确认段中通告的接收
  15. java神兽传说游戏,了不起的神兽传说
  16. 台式计算机红外线端口,台式电脑的红外线端口在哪?
  17. java计算机毕业设计固定资产管理系统源码+mysql数据库+系统+lw文档+部署
  18. 教女朋友学Python是道送命题
  19. 教你什么时候用Vue计算属性!!!
  20. 什么是低格、高格、快格?

热门文章

  1. AES128加密/解密(单片机可用)
  2. 微信H5页面前端开发,大多数人都会遇到的几个兼容性坑(转载)
  3. 相对路径和绝对路径 cd命令 创建和删除目录 rm命令
  4. Mybatis查询的时间数据中包含T
  5. sqldeveloper数据insert后如何commit_教程“卡米”后如何保留数据进行自救 ?
  6. 二阶混合差分的几种差分格式
  7. 实现一个函数输入123456789,输出123,456,789”
  8. 张正友相机标定数学原理
  9. 微信每日推送天气预报每日情话-利用堡塔实现每天自动推送!
  10. java mp3转g722_wav文件转成g722, g729编码的文件