问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java 用swing实现简单计算器

发布网友 发布时间:2022-05-06 16:20

我来回答

2个回答

热心网友 时间:2023-10-11 16:05

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;



public class Calculator 
{
public static void main(String args[])
{
new MainFrame("Calculator").setVisible(true);
}
}

class MainFrame extends JFrame
{
/**
 * 
 */
private static final long serialVersionUID = -8354514836554448949L;

MainFrame(String winname) 
{
super(winname);
CalPanel cp = new CalPanel();
this.add(cp);
this.pack();
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}

class CalPanel extends JPanel
{
/**
 * 
 */
private static final long serialVersionUID = 5927981350284503795L;
JLabel display = null;
JPanel panel = null;
CalculatorNum num = null;
CalculatorOp op = null;
double result;
String command;
boolean start;

public CalPanel()
{
result = 0;
command = "=";
start = true;
display = new JLabel();
panel = new JPanel();
num = new CalculatorNum();
op = new CalculatorOp();
display.setText("0");
display.setFont(new Font("Times New Roman", Font.BOLD, 30));
display.setHorizontalAlignment(SwingConstants.RIGHT);
this.setLayout(new BorderLayout());
add(display, BorderLayout.NORTH);
panel.setLayout(new GridLayout(4, 4));
addButton("7", num);
addButton("8", num);
addButton("9", num);
addButton("+", op);
addButton("4", num);
addButton("5", num);
addButton("6", num);
addButton("-", op);
addButton("1", num);
addButton("2", num);
addButton("3", num);
addButton("*", op);
addButton("0", num);
addButton(".", num);
addButton("=", op);
addButton("/", op);
add(panel, BorderLayout.CENTER);
}

private void addButton(String name, ActionListener al)
{
JButton jb = new JButton(name);
jb.addActionListener(al);
jb.setFont(new Font("Times New Roman", Font.BOLD, 40));
panel.add(jb);
}

class CalculatorNum implements ActionListener
{
public void actionPerformed(ActionEvent e) 
{
String in = e.getActionCommand();
if(start)
{
display.setText("");
start = false;
}
display.setText(display.getText() + in);
}

}

class CalculatorOp implements ActionListener
{
public void actionPerformed(ActionEvent e) 
{
String co = e.getActionCommand();
if(start)
{
if(co == "-")
{
display.setText(co);
start = false;
}
else
{
command = co;
start = true;
}
}
else
{
Calc(Double.parseDouble(display.getText()));
command = co;
start = true;
}
}

private void Calc(double d) 
{
switch(command)
{
case "+":
result += d;
break;
case "-":
result -= d;
break;
case "*":
result *= d;
break;
case "/":
result /= d;
break;
case "=":
result = d;
break;
default:
break;
}
display.setText(result + "");
}

}
}

追问这个还能简单一点嘛。。。

热心网友 时间:2023-10-11 16:05

怎么发给你追问直接在这里打或者截图都行

追答一 三零 八八六六 九四六

热心网友 时间:2023-10-11 16:05

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;



public class Calculator 
{
public static void main(String args[])
{
new MainFrame("Calculator").setVisible(true);
}
}

class MainFrame extends JFrame
{
/**
 * 
 */
private static final long serialVersionUID = -8354514836554448949L;

MainFrame(String winname) 
{
super(winname);
CalPanel cp = new CalPanel();
this.add(cp);
this.pack();
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}

class CalPanel extends JPanel
{
/**
 * 
 */
private static final long serialVersionUID = 5927981350284503795L;
JLabel display = null;
JPanel panel = null;
CalculatorNum num = null;
CalculatorOp op = null;
double result;
String command;
boolean start;

public CalPanel()
{
result = 0;
command = "=";
start = true;
display = new JLabel();
panel = new JPanel();
num = new CalculatorNum();
op = new CalculatorOp();
display.setText("0");
display.setFont(new Font("Times New Roman", Font.BOLD, 30));
display.setHorizontalAlignment(SwingConstants.RIGHT);
this.setLayout(new BorderLayout());
add(display, BorderLayout.NORTH);
panel.setLayout(new GridLayout(4, 4));
addButton("7", num);
addButton("8", num);
addButton("9", num);
addButton("+", op);
addButton("4", num);
addButton("5", num);
addButton("6", num);
addButton("-", op);
addButton("1", num);
addButton("2", num);
addButton("3", num);
addButton("*", op);
addButton("0", num);
addButton(".", num);
addButton("=", op);
addButton("/", op);
add(panel, BorderLayout.CENTER);
}

private void addButton(String name, ActionListener al)
{
JButton jb = new JButton(name);
jb.addActionListener(al);
jb.setFont(new Font("Times New Roman", Font.BOLD, 40));
panel.add(jb);
}

class CalculatorNum implements ActionListener
{
public void actionPerformed(ActionEvent e) 
{
String in = e.getActionCommand();
if(start)
{
display.setText("");
start = false;
}
display.setText(display.getText() + in);
}

}

class CalculatorOp implements ActionListener
{
public void actionPerformed(ActionEvent e) 
{
String co = e.getActionCommand();
if(start)
{
if(co == "-")
{
display.setText(co);
start = false;
}
else
{
command = co;
start = true;
}
}
else
{
Calc(Double.parseDouble(display.getText()));
command = co;
start = true;
}
}

private void Calc(double d) 
{
switch(command)
{
case "+":
result += d;
break;
case "-":
result -= d;
break;
case "*":
result *= d;
break;
case "/":
result /= d;
break;
case "=":
result = d;
break;
default:
break;
}
display.setText(result + "");
}

}
}

追问这个还能简单一点嘛。。。

热心网友 时间:2023-10-11 16:05

怎么发给你追问直接在这里打或者截图都行

追答一 三零 八八六六 九四六

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 java Swing 简单计算. 请问森海塞尔的耳机玩游戏可以吗。可以听音辨位吗。 腾讯版时空猎人加速器哪个好 时空猎人加速器,不要root权限的,有的密我,没有加速器整天被虐,可怜 请问时空加速器的网址是多少? 红烛时空加速器里面暴力加速跟幻影加速什么区别? 时空用什么加速器,既可以加到速又不会闪退 时空猎人加速器 情人父亲葬礼不能去,怎么写短语 温斯顿是怎样给猎空做时空加速器的 遇上同事家的丧事,不想去要怎么礼貌的回绝? 时空加速器小萌星能加速gta5吗 同学母亲去世,不能去参加,怎么表达 丧事去不了微信随礼怎么说? 传奇时空加速器还能用吗 老同学的奶奶去世了不能去现场参加葬礼应怎么说? 时空联机加速器能加速fifa ol3吗 朋友母亲去世,无法到场,怎么写短信比较好? 老人去世不能亲自到的句子 他有病不能参加葬礼 应该怎么给主人说 才好? JAVA用Swing怎么做计算器? 十万火急!求java swing高手帮忙想个算法 java用swing计算正方形面积 java中如何利用swing组件来实现以下内容:输入一个三位数,然后分别输出百位上的、十位上、个位上的数字。 要求使用Swing,编程一个计算器,需要具备计算器的基本功能,要求出现组合框 java Swing 按钮事件 java swing 计算器 键盘 表达式求值 JAVA_用Swing做一个计算器 java swing图像旋转和缩放怎么减少锯齿 Swing如何做像这种效果的进度条?看图。 怎么用java,Swing实现windows标准计算器 为什么金恩的重斩刀砍强袭高达的PS装甲,强袭高达安然无恙,脉冲高达的斩舰刀,却可以捅穿自由高达 在线等!Java Swing,利用两个文本框对象接受用户输入两个数据,点击计算将两个数的和显示出来。 SD高达G世纪的gba版,量产型金恩需要那种机师才能搭乘啊 javaSwing中在文本框TextField中输入值,然后点击按钮获取文本框中的值并进行相应的计算,怎么实现啊? 求高达seed迪恩、金恩、盖茨、席古所有型号里资料 高达seed destiny中尤尼欧斯7里的身上有紫色的金恩是什么型号,有光束步*的那种,求解 高达seed中 克鲁泽一开始开的那种 一只眼睛的 白色的金恩(就是抢走芙蕾的那集中的)。 其实,我觉得最早被基神削人棍的是高达seed第一部里那个金恩要射大天使指挥舱时基神飞下来射掉了他的头。 独眼高达有哪些?请列举比如:扎古,金恩,大魔。。其他就不知道了,只要名字,一个名字一个逗号,谢谢