求一个用JAVA写的计算器程序,简单的,类似Window自带的图形界面

报告没有 程序倒是有一个package js;import java.awt.Button;import java.awt.Color;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Panel;import java.awt.TextField;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.WindowAdapter;import java.aw...
求一个用JAVA写的计算器程序,简单的,类似Window自带的图形界面
报告没有 程序倒是有一个
package js;

import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Js extends WindowAdapter implements MouseListener {
private String first;
private String second;
private String operator;
private Button zero = new Button("0");
private Button one = new Button("1");
private Button two = new Button("2");
private Button three = new Button("3");
private Button four = new Button("4");
private Button five = new Button("5");
private Button six = new Button("6");
private Button seven = new Button("7");
private Button eight = new Button("8");
private Button nine = new Button("9");
private Button decimal = new Button(".");
private Button equal = new Button("=");
private Button add = new Button("+");
private Button sub = new Button("-");
private Button mul = new Button("*");
private Button div = new Button("/");
private TextField input = new TextField();
private Button CE = new Button("CE");
private Button DEL = new Button("Del");
public static void main(String[] args){
new Js();
}
public Js(){
Frame f = new Frame("Calculator");
f.add("North", input);
Panel keys = new Panel();
f.add(keys, "Center");
keys.setLayout(new GridLayout(4, 4));
keys.add(seven);
keys.add(eight);
keys.add(nine);
keys.add(add);
keys.add(four);
keys.add(five);
keys.add(six);
keys.add(sub);
keys.add(one);
keys.add(two);
keys.add(three);
keys.add(mul);
keys.add(zero);
keys.add(decimal);
keys.add(equal);
keys.add(div);
zero.addMouseListener(this);
one.addMouseListener(this);
two.addMouseListener(this);
three.addMouseListener(this);
four.addMouseListener(this);
five.addMouseListener(this);
six.addMouseListener(this);
seven.addMouseListener(this);
eight.addMouseListener(this);
nine.addMouseListener(this);
add.addMouseListener(this);
sub.addMouseListener(this);
div.addMouseListener(this);
mul.addMouseListener(this);
equal.addMouseListener(this);
decimal.addMouseListener(this);
Panel addtionalPanel = new Panel();
addtionalPanel.setLayout(new GridLayout(1, 2));
addtionalPanel.add(CE);
addtionalPanel.add(DEL);
CE.setBackground(Color.green);
DEL.setBackground(Color.cyan);
CE.addMouseListener(this);
DEL.addMouseListener(this);
f.add("South", addtionalPanel);
f.addWindowListener(this);
f.setVisible(true);
f.setLocation(200, 300);
f.setSize(200, 200);
}
public void windowClosing(WindowEvent e){
System.exit(0);
}
public void mouseClicked(MouseEvent e){
Button btn = (Button)e.getSource();
String key = btn.getActionCommand().trim();
if(btn == one || btn == two || btn == three || btn == zero || btn == four || btn == five || btn == six || btn == seven || btn == eight || btn == nine){
if(isBlank(operator)){
if(isBlank(first)){
first = key;
}
else{
first += key;
}
input.setText(first);
}
else{
if(isBlank(second)){
second = key;
}
else{
second += key;
}
input.setText(second);
}
}
else if(btn == decimal){
if(isBlank(operator)){
if(isBlank(first)){
first = "0.";
input.setText(first);
}
else{
if(first.indexOf(".") == -1){
first += ".";
input.setText(first);
}
}
}
else{
if(isBlank(second)){
second = "0.";
input.setText(second);
}
else{
if(second.indexOf(".") == -1){
second += ".";
input.setText(second);
}
}
}
}
else if(btn == equal){
if(!isBlank(second) && !isBlank(first) && !isBlank(operator)){
double result = 0.0D;
if(operator.equals("+")){
result = Double.parseDouble(first) + Double.parseDouble(second);
}
else if(operator.equals("-")){
result = Double.parseDouble(first) - Double.parseDouble(second);
}
else if(operator.equals("*")){
result = Double.parseDouble(first) * Double.parseDouble(second);
}
else if(operator.equals("/")){
result = Double.parseDouble(first) / Double.parseDouble(second);
}
int value = (int)Math.round(result);
if(value == result){
input.setText(String.valueOf(value));
}
else{
input.setText(String.valueOf(result));
}
first = String.valueOf(result);
second = null;
operator = null;
}
}
else if(btn == add || btn == sub || btn == div || btn == mul){
if(!isBlank(first)){
if(!isBlank(operator) && !isBlank(second)){
if(operator.equals("+")){
first = String.valueOf(Double.parseDouble(first) + Double.parseDouble(second));
}
else if(operator.equals("-")){
first = String.valueOf(Double.parseDouble(first) - Double.parseDouble(second));
}
else if(operator.equals("*")){
first = String.valueOf(Double.parseDouble(first) * Double.parseDouble(second));
}
else if(operator.equals("/")){
first = String.valueOf(Double.parseDouble(first) / Double.parseDouble(second));
}
second = null;
}
operator = key;
}
}
else if(btn == CE){
first = null;
second = null;
operator = null;
input.setText(null);
}
else if(btn == DEL){
if(isBlank(operator)){
if(!isBlank(first)){
first = first.substring(0, first.length() -1);
input.setText(first);
}
}
else{
if(!isBlank(second)){
second = second.substring(0, second.length() -1);
input.setText(second);
}
}
}
}
private boolean isBlank(String str){
return str == null || str.trim().equals("");
}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}2011-12-12
mengvlog 阅读 8 次 更新于 2025-07-19 12:47:07 我来答关注问题0
  • 为了能够在关闭窗口时退出程序,需要添加WindowListener,并重写windowClosing方法。编写主方法:在类中编写main方法,用于启动计算器程序。在main方法中,创建Calculator类的实例。注意:上述代码示例是一个简单的计算器实现,仅包含基本的数字和加法操作。实际使用时,需要进一步完善代码,包括添加更多的数字按钮、...

  •  深空见闻 你好,可以帮我用java编写一个简单计算器程序吗?实现double数据类型的加减乘除

    首先,我们需要创建一个名为JiSuanQi的Java类,并在其中定义main方法。在main方法中,我们初始化两个double变量d1和d2,分别赋予1.23和2.30的值。同时,我们还需要定义一个字符变量ch,用于存储运算符。这里我们选择使用+、-、*、/四个常见的运算符进行演示。接下来,我们使用switch语句来判断字符ch的...

  • import java.awt.event.*;class Counter extends WindowAdapter { static JFrame f=new JFrame("计算器");static JTextField text1=new JTextField("0.");static String source="";static String cal="";static String object="";static boolean flag=false;static boolean flag1=true;static boolea...

  •  翡希信息咨询 如何使用Java AWT 创建一个简易计算器

    使用Frame类创建一个主窗口。设置窗口的标题、大小和布局管理器。添加数字按钮:使用Button类创建数字按钮。为每个数字按钮添加ActionListener,在按钮被点击时,将按钮的值存储在变量中,并与当前显示的值连接,然后更新显示标签的内容。添加特殊按钮:NEGATIVE按钮:用于切换正负号。DECIMAL PTS按钮:用于添加小...

  •  tong_fan 编写一个JAVA计算器程序

    编写一个模拟计算器的JavaApplet或JavaApplication程序,使用面板和网格布局,添加3个文本框,其中两个作为操作数使用,另一个作为显示使用,4个“加减乘除”运算符按钮,一个“等号”... 编写一个模拟计算器的Java Applet或Java Application程序,使用面板和网格布局,添加3个文本框,其中两个作为操作数使用,另一个作为显示...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部