java使用window builder图形界面开发简易计算器
界面效果:

/**
*
*/
package calculator;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.GridLayout;
import javax.swing.JLabel;
import java.awt.GridBagLayout;
import javax.swing.JTextField;
import java.awt.GridBagConstraints;
import java.awt.FlowLayout;
import javax.swing.SpringLayout;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Font;
import javax.swing.JSpinner;
import javax.swing.JFormattedTextField;
import javax.swing.JCheckBox;
import javax.swing.JTable;
import javax.swing.JProgressBar;
import javax.swing.JTextArea;
import java.awt.Color;
/**
* @author Ocean
*
*/
public class Calc_Main extends JFrame {
private JTextField textField;
private JTable table;
String s = "";// 显示算式
long[] num = new long[100];// 储存运算数据
char[] b = new char[100];// 储存运算符
int i = 0;// 输入运算数据和运算符是给数组计数
int c;// 计算结果时计数
long jieguo = 0;// 计算结果
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Calc_Main frame = new Calc_Main();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* 构造方法
* Create the frame.
*/
public Calc_Main() {
setFont(new Font("Dialog", Font.PLAIN, 12));
setTitle("计算器");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(800, 300, 382, 494);
getContentPane().setLayout(null);
textField = new JTextField();
textField.setForeground(new Color(102, 51, 255));
textField.setFont(new Font("宋体", Font.PLAIN, 18));
textField.setBounds(10, 10, 344, 50);
getContentPane().add(textField);
textField.setColumns(10);
JButton btnNewButton = new JButton("C");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s="";
textField.setText(s);//清空文本框
for(c=0;c<100;c++)
{
num[c]=0;//清空运算数据
b[c]=0;//清空运算符
}
i=0;
c=0;
jieguo=0;
}
});
btnNewButton.setBounds(20, 99, 65, 40);
getContentPane().add(btnNewButton);
JButton button = new JButton("/");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s=s+"/";
textField.setText(s);//在文本框中显示相应运算符
b[i]='/';
i++; //输入运算符号后给数组地址+1存放后面的输入
}
});
button.setBounds(107, 99, 65, 40);
getContentPane().add(button);
JButton button_1 = new JButton("*");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s=s+"*";
textField.setText(s);//在文本框中显示相应运算符
b[i]='*';
i++;
}
});
button_1.setBounds(189, 99, 65, 40);
getContentPane().add(button_1);
JButton button_2 = new JButton("-");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s=s+"-";
textField.setText(s);//在文本框中显示相应运算符
b[i]='-';
i++;
}
});
button_2.setBounds(276, 99, 65, 40);
getContentPane().add(button_2);
JButton button_3 = new JButton("1");
button_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
s += "1";
textField.setText(s);//在文本框中显示相应数字
num[i] = num[i] * 10 + 1;
}
});
button_3.setBounds(20, 170, 65, 40);
getContentPane().add(button_3);
JButton button_4 = new JButton("2");
button_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s += "2";
textField.setText(s);//在文本框中显示相应数字
num[i] = num[i] * 10 + 2;
}
});
button_4.setBounds(107, 170, 65, 40);
getContentPane().add(button_4);
JButton button_5 = new JButton("3");
button_5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s += "3";
textField.setText(s);//在文本框中显示相应数字
num[i] = num[i] * 10 + 3;
}
});
button_5.setBounds(189, 170, 65, 40);
getContentPane().add(button_5);
JButton button_6 = new JButton("+");
button_6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s=s+"+";
textField.setText(s);//在文本框中显示相应运算符
b[i]='+';
i++;
}
});
button_6.setBounds(276, 170, 65, 116);
getContentPane().add(button_6);
JButton button_7 = new JButton("4");
button_7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s += "4";
textField.setText(s);//在文本框中显示相应数字
num[i] = num[i] * 10 + 4;
}
});
button_7.setBounds(20, 246, 65, 40);
getContentPane().add(button_7);
JButton button_8 = new JButton("5");
button_8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s += "5";
textField.setText(s);//在文本框中显示相应数字
num[i] = num[i] * 10 + 5;
}
});
button_8.setBounds(107, 246, 65, 40);
getContentPane().add(button_8);
JButton button_9 = new JButton("6");
button_9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s += "6";
textField.setText(s);//在文本框中显示相应数字
num[i] = num[i] * 10 + 6;
}
});
button_9.setBounds(189, 246, 65, 40);
getContentPane().add(button_9);
JButton button_11 = new JButton("7");
button_11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s += "7";
textField.setText(s);//在文本框中显示相应数字
num[i] = num[i] * 10 + 7;
}
});
button_11.setBounds(20, 315, 65, 40);
getContentPane().add(button_11);
JButton button_12 = new JButton("8");
button_12.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s += "8";
textField.setText(s);//在文本框中显示相应数字
num[i] = num[i] * 10 + 8;
}
});
button_12.setBounds(107, 315, 65, 40);
getContentPane().add(button_12);
JButton button_13 = new JButton("9");
button_13.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s += "9";
textField.setText(s);//在文本框中显示相应数字
num[i] = num[i] * 10 + 9;
}
});
button_13.setBounds(189, 315, 65, 40);
getContentPane().add(button_13);
JButton button_14 = new JButton("=");
button_14.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
switch(b[0])//为了方便用循环来计算,我想到的是先把第一次计算提出来
{
case '+':
{
jieguo=num[0]+num[1];
break;
}
case '-':
{
jieguo=num[0]-num[1];
break;
}
case '*':
{
jieguo=num[0]*num[1];
break;
}
case '/':
{
jieguo=num[0]/num[1];
break;
}
}
c++;
// 一个算式多次运算
for(c=1;c<i;c++)
{
switch(b[c])
{
case '+':
{
jieguo=jieguo+num[c+1];
break;
}
case '-':
{
jieguo=jieguo-num[c+1];
break;
}
case '*':
{
jieguo=jieguo*num[c+1];
break;
}
case '/':
{
jieguo=jieguo/num[c+1];
break;
}
}
}
textField.setText(String.valueOf(jieguo));//.setText()的参数需要String,所以用String.valueOf()将long转换为String
}
});
button_14.setBounds(276, 315, 65, 104);
getContentPane().add(button_14);
JButton button_15 = new JButton("0");
button_15.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
s += "0";
textField.setText(s);//在文本框中显示相应数字
num[i] = num[i] * 10 + 0;
}
});
button_15.setBounds(20, 379, 152, 40);
getContentPane().add(button_15);
JButton button_17 = new JButton(".");
button_17.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//还没想出来怎么整,有知道的大佬还请多指教``
}
});
button_17.setBounds(189, 379, 65, 40);
getContentPane().add(button_17);
JLabel label = new JLabel("注意本计算机没有计算优先级(一律从左到右计算)");
label.setBounds(22, 430, 321, 15);
getContentPane().add(label);
}
}
java使用window builder图形界面开发简易计算器的更多相关文章
- Java图形界面开发—简易登录注册小程序
登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库 ...
- Java图形界面开发—简易记事本
在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: ...
- Java 图形界面开发--图文并茂建立学生管理系统
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/50932501 冷血之心的博客) 图形用户界面(Graphics U ...
- JAVA与图形界面开发(Applet应用程序、AWT库、Swing)
Applet 1)简单说,Applet就是嵌入到网页中的小程序,Java代码. 2)编写Applet程序,要继承JApplet类,并根据自己需要覆写相关方法(init.start.stop.destr ...
- Java GUI图形界面开发工具
Applet 应用程序 一种可以在 Web 浏览器中执行的小程序,扩展了浏览器中的网页功能. 缺: 1.需要下载 Applet 及其相关文件 2.Applet 的功能是受限制的 优: 3.无需 ...
- Java图形界面学习---------简易登录界面
/** * @author Administrator * Java图形界面学习---------简易登录界面 * date:2015/10/31 */ import java.awt.BorderL ...
- JAVA 图形界面开发基础详解
与C的win32一样,JAVA也有自己的图形界面开发,将在此篇博客中对基础部分进行讲解. 1.Java提供的图形界面类有哪些? Java提供了两套图形界面 (1)AWT组建(基础) AWT组件是jdk ...
- Java Swing 图形界面开发(目录)
Java Swing 图形界面开发(目录) 2017年05月30日 23:50:42 阅读数:5228 本文链接: http://blog.csdn.net/xietansheng/article/d ...
- Java Swing图形界面开发
本文转自xietansheng的CSDN博客内容,这是自己见过的最通俗易懂.最适合快速上手做Java GUI开发的教程了,这里整合一下作为自己以后复习的笔记: 原文地址:https://blog.cs ...
随机推荐
- Continue 和 Break
1.什么是continue和break continue:继续的.持续的 break:冲断的.折断的 作用:用于终止循环体,主要用于switch条件语句和循环体条件语句(for.while.do-wh ...
- 【Canvas】(2)---绘制折线图
绘制折线图 之前在工作的时候,用过百度的ECharts绘制折线图,上手很简单,这里通过canvas绘制一个简单的折线图.这里将一整个绘制过程分为几个步骤: 1.绘制网格 2.绘制坐标系 3.绘制点 4 ...
- 三个步骤就能让你轻松掌握Python爬虫
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:NicePython PS:如有需要Python学习资料的小伙伴可以加 ...
- 好用的mitmproxy代理抓包
安装证书 浏览器输入 `mitm.it` 下载证书有时候打不开,可能是起的服务卡死了,回车下命令行,再再网页刷新下载证书就可以了. mitmweb Chrome浏览器代理设置 打开的话,记得保存点一下 ...
- web测试流程
1.立项后测试需要拿到文档(需求说明书,原型图,接口文档,) 2.需求评审 3.用例编写(主流程,备流程,异常流,业务规则,正常类,异常类,页面检查) 测试用例编写方法(等价类划分,边界值分析法,错误 ...
- pysparnn 模块使用,相似句子召回
import pysparnn.cluster_index as ci from sklearn.feature_extraction.text import TfidfVectorizer data ...
- js 一个或多个一维数组,算出元素之间相互组合的所有情况
// 数据源 var target = { state1: ['1', '2'], state2: ['01', '02', '03'], state3: ['001','002'] } stackS ...
- 这是那些大佬程序员常用的学习java网站,这就是别人薪资上万的原因
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们.主要有:电子书搜索.实用工具.在线视频 ...
- PHP扩展Swoole的代码重载机制
大家都知道Swoole的性能在PHP界还算不错,同样都是PHP为什么呢,我专门研究了下. 几个概念: 1) sapi:可以简单的理解为php引擎对外的一个统一接口,使得php可以和外部程序进行交互 ...
- python学习14集合
'''''''''集合:set1.定义:是一个无序的不重复元素序列.2.表示:大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用 ...