java计算器 图形用户界面 精简版

时间:2022-05-12 02:22:45
package com.rgy.entity;

import java.awt.*;
import java.awt.event.*; @SuppressWarnings("serial")
public class Computer extends Frame implements ActionListener{
private Panel panel_keys;
private TextField text_show;
private String str="";
private double num_record=0;
private int count_cut=0;
private int count_multiplication=0;
private int count_division=0;
private int op=0;
private Button button_num0;private Button button_num1;
private Button button_num2;private Button button_num3;
private Button button_num4;private Button button_num5;
private Button button_num6;private Button button_num7;
private Button button_num8;private Button button_num9;
private Button button_division;
private Button button_multiplication;
private Button button_cut;
private Button button_add;
private Button button_equal;
private Button button_point; public Computer(){
super("计算器");
this.setVisible(true);
this.setBounds(500,250,300,250); panel_keys=new Panel();
text_show=new TextField();
text_show.setEditable(false); button_num0=new Button("0");button_num1=new Button("1");
button_num2=new Button("2");button_num3=new Button("3");
button_num4=new Button("4");button_num5=new Button("5");
button_num6=new Button("6");button_num7=new Button("7");
button_num8=new Button("8");button_num9=new Button("9");
button_division=new Button("/");
button_multiplication=new Button("*");
button_cut=new Button("-");
button_add=new Button("+");
button_equal=new Button("=");
button_point=new Button("."); this.add(text_show,BorderLayout.NORTH);
this.add(panel_keys,BorderLayout.CENTER); panel_keys.add(button_num7);panel_keys.add(button_num8);panel_keys.add(button_num9);panel_keys.add(button_division);
panel_keys.add(button_num4);panel_keys.add(button_num5);panel_keys.add(button_num6);panel_keys.add(button_multiplication);
panel_keys.add(button_num1);panel_keys.add(button_num2);panel_keys.add(button_num3);panel_keys.add(button_cut);
panel_keys.add(button_num0);panel_keys.add(button_point);panel_keys.add(button_equal);panel_keys.add(button_add); panel_keys.setLayout(new GridLayout(4,4)); this.addWindowListener(new WinClose());
button_num0.addActionListener(this);
button_num1.addActionListener(this);
button_num2.addActionListener(this);
button_num3.addActionListener(this);
button_num4.addActionListener(this);
button_num5.addActionListener(this);
button_num6.addActionListener(this);
button_num7.addActionListener(this);
button_num8.addActionListener(this);
button_num9.addActionListener(this);
button_division.addActionListener(this);
button_multiplication.addActionListener(this);
button_add.addActionListener(this);
button_cut.addActionListener(this);
button_equal.addActionListener(this);
button_point.addActionListener(this);
} //键盘事件监听
public void actionPerformed(ActionEvent ev) {
if(ev.getSource()==button_num0){
str=text_show.getText()+"0";
text_show.setText(str);
}
if(ev.getSource()==button_num1){
str=text_show.getText()+"1";
text_show.setText(str);
}
if(ev.getSource()==button_num2){
str=text_show.getText()+"2";
text_show.setText(str);
}
if(ev.getSource()==button_num3){
str=text_show.getText()+"3";
text_show.setText(str);
}
if(ev.getSource()==button_num4){
str=text_show.getText()+"4";
text_show.setText(str);
}
if(ev.getSource()==button_num5){
str=text_show.getText()+"5";
text_show.setText(str);
}
if(ev.getSource()==button_num6){
str=text_show.getText()+"6";
text_show.setText(str);
}
if(ev.getSource()==button_num7){
str=text_show.getText()+"7";
text_show.setText(str);
}
if(ev.getSource()==button_num8){
str=text_show.getText()+"8";
text_show.setText(str);
}
if(ev.getSource()==button_num9){
str=text_show.getText()+"9";
text_show.setText(str);
}
if(ev.getSource()==button_point){
str=text_show.getText()+".";
text_show.setText(str);
}
if(ev.getSource()==button_add){
if(op==5){}
else{
num_record=num_record+Double.parseDouble(str);
}
str="";
text_show.setText(str);
op=1;
}
if(ev.getSource()==button_cut){
if(op==5){}
else{
if(count_cut==0){
num_record=Double.parseDouble(str);
count_cut++;
}
else{
num_record=num_record-Double.parseDouble(str);
}
}
str="";
text_show.setText(str);
op=2;
}
if(ev.getSource()==button_multiplication){
if(op==5){}
else{
if(count_multiplication==0){
num_record=Double.parseDouble(str);
count_multiplication++;
}
else{
num_record=num_record*Double.parseDouble(str);
}
}
str="";
text_show.setText(str);
op=3;
}
if(ev.getSource()==button_division){
if(op==5){}
else{
if(count_division==0){
num_record=Double.parseDouble(str);
count_division++;
}
else{
num_record=num_record/Double.parseDouble(str);
}
}
str="";
text_show.setText(str);
op=4;
}
if(ev.getSource()==button_equal){
if(op==1){
num_record=num_record+Double.parseDouble(str);
}
if(op==2){
num_record=num_record-Double.parseDouble(str);
}
if(op==3){
num_record=num_record*Double.parseDouble(str);
}
if(op==4){
num_record=num_record/Double.parseDouble(str);
} if(num_record-(int)num_record==0){
text_show.setText(""+(int)num_record);
}
else{
text_show.setText(""+num_record);
}
op=5;
}
} //窗体事件监听
public class WinClose implements WindowListener {
public void windowOpened(WindowEvent e) {}
public void windowClosing(WindowEvent e) {
System.exit(0);
}
public void windowClosed(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
}
} package com.rgy.Test; import com.rgy.entity.*; public class Test {
public static void main(String args[]){
new Computer();
}
}

java计算器  图形用户界面  精简版

版权声明:本文博主原创文章。博客,未经同意不得转载。

java计算器 图形用户界面 精简版的更多相关文章

  1. java计算器 图形用户界面 升级版 v1.02

    package com.rgy.entity; import java.awt.BorderLayout; import java.awt.Font; import java.awt.GridLayo ...

  2. java GUI(图形用户界面)

    GUI Graphical User Interface(图形用户接口). 用图形的方式,来显示计算机操作的界面,这样更方便更直观. CLI Command line User Interface ( ...

  3. 借助WindowBuilder插件轻松完成JAVA图形用户界面编辑

    如果以纯代码的形式进行JAVA的图形用户界面编辑,将是一件非常痛苦的事,博主在学习过程中发现了JAVA GUI编辑神器——WindowBuilder,提供可视化的编辑界面,控件的添加.排版只需使用鼠标 ...

  4. java第八节 GUI/图形用户界面

    /* *第8讲 GUI/图形用户界面 * AWT的基础知识 * GUI全称是Graphical User Interface,即图形用户界面 * JDK中提供了AWT和Swing两个包,用于GUI程序 ...

  5. 黑马程序员——【Java基础】——GUI(图形用户界面)

    ---------- android培训.java培训.期待与您交流! ---------- 一.概述 1.GUI(GraphicalUser Interface):又称图形用户界面,是计算机用户与计 ...

  6. HTML5技术实现Web图形图像处理——WebPhotoshop精简版

    WebPhotoshop精简版是利用HTML5技术在Web上实现对图形图像的处理,构建易维护.易共享.易于拓展.实时性的Web图形图像处理平台. 精简版功能包括:图形绘制.图像处理.图像操作.完整版包 ...

  7. 抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立 图形用户界面

    抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立 图形用户界面GUI (Graphics User Interface)工具集,AWT可用 ...

  8. AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API

    抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平*立的窗口系统,图形和用户界面器件工具包. AWT是Java基础类 (JFC)的一部分,为Java程 ...

  9. Java图形用户界面编程

    1.Java图形用户界面编程概述 JavaAPI中提供了两套组件用于支持编写图形用户界面:AWT(抽象窗口包)和Swing 2.  容器(Container):重量级容器和轻量级容器(一个容器可以放置 ...

随机推荐

  1. 尝试解决在构造函数中同步调用Dns.GetHostAddressesAsync()引起的线程死锁

    (最终采用的是方法4) 问题详情见:.NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长 看看在 Linux 与 Windows 上发生线程死锁的后果. Linux: Microsoft ...

  2. GCC的gcc和g++区别

    看的Linux公社的一篇文章,觉得不错,内容复制过来了. 其实在这之前,我一直以为gcc和g++是一个东西,只是有两个不同的名字而已,今天在linux下编译一个c代码时出现了错误才找了一下gcc和g+ ...

  3. Auto generating Entity classes with xsd.exe for XML Serialization and De-Serialization

    More info here: http://blogs.msdn.com/b/yojoshi/archive/2011/05/14/xml-serialization-and-deserializa ...

  4. paip.简化字-手写参考二简字..共98个

    paip.简化字-手写参考二简字..共98个 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/a ...

  5. Swift基础--手势识别(双击、捏、旋转、拖动、划动、长按)

    // //  ViewController.swift //  JieUITapGestureRecognizer // //  Created by jiezhang on 14-10-4. //  ...

  6. SQL之50个常用的SQL语句

    50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,T ...

  7. Python – Get Object’s Class Name | Ridge Solutions, Ireland

    Python – Get Object’s Class Name | Ridge Solutions, Ireland Python – Get Object’s Class Name Author: ...

  8. 设计模式,Let's “Go”! (中)

    * { color: #3e3e3e } body { font-family: "Helvetica Neue", Helvetica, "Hiragino Sans ...

  9. 笔记-64位dump转32位dump

    下图是从测试拷64位windbg抓的dump文件拖到32位windbg查看线程堆栈信息的效果. 那么我们加载一下wow64exts模块,因为需要这个模块帮助把64位的dump,转换成32位的dump. ...

  10. Oracle.ManagedDataAccess.dll 连接Oracle数据库不需要安装客户端

    最开始,连接Oracle 数据是需要安装客户端的,ado.net 后来由于微软未来不再支持 System.Data.OracleClient 这个 Data Provider 的研发,从 .NET 4 ...