界面效果:

/**
*
*/
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图形界面开发简易计算器的更多相关文章

  1. Java图形界面开发—简易登录注册小程序

    登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库 ...

  2. Java图形界面开发—简易记事本

          在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: ...

  3. Java 图形界面开发--图文并茂建立学生管理系统

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/50932501 冷血之心的博客) 图形用户界面(Graphics U ...

  4. JAVA与图形界面开发(Applet应用程序、AWT库、Swing)

    Applet 1)简单说,Applet就是嵌入到网页中的小程序,Java代码. 2)编写Applet程序,要继承JApplet类,并根据自己需要覆写相关方法(init.start.stop.destr ...

  5. Java GUI图形界面开发工具

    Applet 应用程序     一种可以在 Web 浏览器中执行的小程序,扩展了浏览器中的网页功能. 缺: 1.需要下载 Applet 及其相关文件 2.Applet 的功能是受限制的 优: 3.无需 ...

  6. Java图形界面学习---------简易登录界面

    /** * @author Administrator * Java图形界面学习---------简易登录界面 * date:2015/10/31 */ import java.awt.BorderL ...

  7. JAVA 图形界面开发基础详解

    与C的win32一样,JAVA也有自己的图形界面开发,将在此篇博客中对基础部分进行讲解. 1.Java提供的图形界面类有哪些? Java提供了两套图形界面 (1)AWT组建(基础) AWT组件是jdk ...

  8. Java Swing 图形界面开发(目录)

    Java Swing 图形界面开发(目录) 2017年05月30日 23:50:42 阅读数:5228 本文链接: http://blog.csdn.net/xietansheng/article/d ...

  9. Java Swing图形界面开发

    本文转自xietansheng的CSDN博客内容,这是自己见过的最通俗易懂.最适合快速上手做Java GUI开发的教程了,这里整合一下作为自己以后复习的笔记: 原文地址:https://blog.cs ...

随机推荐

  1. 这价格看得我偷偷摸了泪——用python爬取北京二手房数据

    如果想了解更多关于python的应用,可以私信我,或者加群,里面到资料都是免费的 http://t.cn/A6Zvjdun 近期,有个朋友联系我,想统计一下北京二手房的相关的数据,而自己用Excel统 ...

  2. stand up meeting 1/7/2016

    part 组员                今日工作              工作耗时/h 明日计划 工作耗时/h    UI 冯晓云 调研下滑条的存在问题,尝试替换方案     6 全面实行替换 ...

  3. 详解 方法的覆盖 —— toString() 与 equals()的覆盖

    在学习本篇博文前,建议先学习完本人的博文--<详解 继承(上)-- 工具的抽象与分层> 在本人之前的博文中曾讲过"基类"的知识,那么,本篇博文中的主题--Object类 ...

  4. mybatis源码学习:一级缓存和二级缓存分析

    目录 零.一级缓存和二级缓存的流程 一级缓存总结 二级缓存总结 一.缓存接口Cache及其实现类 二.cache标签解析源码 三.CacheKey缓存项的key 四.二级缓存TransactionCa ...

  5. Centos8安装docker-compose

    一.首先检查是否有pip 执行命令:piv -V 二.更新pip 执行命令:pip install --upgrade pip 三.下载  setuptools 执行命令 :pip install - ...

  6. 在Eclipse上实现简单的JDBC增删查改操作

    在Javaweb的学习里,学到了如何完成简单的增删查改操作,在这里撰写一篇文章以便自己整理回忆. 首先要建立一些包和导入一些文件.建一些类.具体框架如图  编写Product类 public clas ...

  7. 解决Idea配置文件不显示中文的问题

    1.首先我们的IDEA文件编码一般都修改为utf-8(setting-->file encodings--->Global Encoding 和 Project Encoding 都设置为 ...

  8. 009.Ansible模板管理 Jinja2

    一 Jinja2简介 Jinja2是基于python的模板引擎. 假设说现在我们需要一次性在10台主机上安装redis,这个通过playbook现在已经很容易实现.默认情况下,所有的redis安装完成 ...

  9. 【三剑客】sed命令

    1. Sed 简介 sed 是Stream Editor(流编辑器)的缩写,是操作.过滤和转换文本内容的强大工具.常用功能有增删改查,过滤,取行.   sed 是一种新型的,非交互式的编辑器. 它能执 ...

  10. 写给Java程序员的Java虚拟机学习指南

    大家好,我是极客时间<深入拆解Java虚拟机>作者.Oracle Labs高级研究员郑雨迪.有幸借这个专题的机会,能和大家分享为何Java工程师要学Java虚拟机?如何掌握Java虚拟机? ...