//引入各种类文件
import?java.awt.Button;
import?java.awt.Color;
import?java.awt.FlowLayout;
import?java.awt.Font;
import?java.awt.Frame;
import?java.awt.GridLayout;
import?java.awt.Panel;
import?java.awt.TextField;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
//定义JsqFrame继承Frame
class?JsqFrame?extends?Frame?{
int?op?=?-1;?//定义两个int类型的变量
static?TextField?tf;//定义静态对象TextField
CalPanelL?p1;?//定义CalPanelL对象
//?Constructor构造方法
JsqFrame()?{
//以下设置属性
super("计算器");
setLayout(new?FlowLayout());
setResizable(false);
tf.setEditable(false);
tf.setBackground(Color.lightGray);
tf.setForeground(Color.red);
add(tf);
p1?=?new?CalPanelL();
add(p1);
setVisible(true);
//?addWindowListener(new?Wclose());
}
//添加按钮继承Button类
class?CalButton?extends?Button?{
CalButton(String?s)?{
//设置按钮属性
super(s);
setBackground(Color.WHITE);?//设置颜色为白色
//定义显示器继承Panel类
class?CalPanelL?extends?Panel?{
bAdd,?bSub,?bMul,?bDiv,?bL,?bR,?bLn,?bEqual,?bCE,?bQuit;
CalPanelL()?{
//设置显示器的属性
a?=?new?CalButton("");
c?=?new?CalButton("");
b0?=?new?CalButton("0");
b1?=?new?CalButton("1");
bPN?=?new?CalButton("◆/-");
bPoint?=?new?CalButton(".");
//?设置按钮
bAdd?=?new?CalButton("◆");
bSub?=?new?CalButton("-");
bMul?=?new?CalButton("*");
bDiv?=?new?CalButton("/");
bL?=?new?CalButton("(");
bR?=?new?CalButton(")");
bLn?=?new?CalButton("ln");
bEqual?=?new?CalButton("=");
bCE?=?new?CalButton("CE");
bQuit?=?new?CalButton("退出");
//?加入按钮
add(a);
add(c);
add(bCE);
bCE.addActionListener(new?PressBCE());
add(bQuit);
bQuit.addActionListener(new?PressBQuit());
add(bDiv);
bDiv.addActionListener(new?PressBDiv());
add(bMul);
bMul.addActionListener(new?PressBMul());
add(b1);
b1.addActionListener(new?PressB1());
add(bSub);
bSub.addActionListener(new?PressBSub());
add(b0);
b0.addActionListener(new?PressB0());
add(bPoint);
bPoint.addActionListener(new?PressBPoint());
add(bPN);
bPN.addActionListener(new?PressBPN());
;
add(bAdd);
bAdd.addActionListener(new?PressBAdd());
add(bL);
bL.addActionListener(new?PressBL());
add(bR);
bR.addActionListener(new?PressBR());
add(bLn);
bLn.addActionListener(new?PressBLn());
add(bEqual);
bEqual.addActionListener(new?PressBEqual());
//定义PressBAdd实现ActionListener
//大体的意思是按计算机按键的时出发的时间,设置按键的监听[加号的监听事件]
class?PressBAdd?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
try?{
String?d1?=?tf.getText();
op?=?0;
tf.setText(d1?◆?"◆");
}?catch?(Exception?ee)?{
//定义PressBSub实现ActionListener
//大体的意思是按计算机按键的时出发的时间,设置按键的监听[减号的监听事件]
class?PressBSub?implements?ActionListener?{
op?=?1;
tf.setText(d1?◆?"-");
//定义PressBMul实现ActionListener
//大体的意思是按计算机按键的时出发的时间,设置按键的监听[乘号的监听事件]
class?PressBMul?implements?ActionListener?{
tf.setText(d1?◆?"*");
//定义PressBDiv实现ActionListener
//大体的意思是按计算机按键的时出发的时间,设置按键的监听[除号的监听事件]
class?PressBDiv?implements?ActionListener?{
tf.setText(d1?◆?"/");
//定义PressBL实现ActionListener
//大体的意思是按计算机按键的时出发的时间,设置按键的监听[向左键的监听事件]
class?PressBL?implements?ActionListener?{
tf.setText(d1?◆?"(");
//定义PressBR实现ActionListener
//大体的意思是按计算机按键的时出发的时间,设置按键的监听[向右键的监听事件]
class?PressBR?implements?ActionListener?{
tf.setText(d1?◆?")");
//定义PressBEqual实现ActionListener
//大体的意思是按计算机按键的时出发的时间,设置按键的监听[等号的监听事件]
class?PressBEqual?implements?ActionListener?{
Jsq?jsq?=?new?Jsq();
String?s?=?tf.getText();
System.out.println(s);
while?(s.indexOf("(")?◆?1?0?s.indexOf(")")?0)?{
String?s1?=?jsq.caculateHigh(s);
System.out.println(s1);
s?=?s1;
String?str?=?jsq.cacluteMain(s);
System.out.println(str);
tf.setText(String.valueOf(str));
/*
*?批量写吧
*?还有清零的等等监听事件
*/
class?PressBLn?implements?ActionListener?{
double?x?=?Double.parseDouble(tf.getText());
double?y;
y?=?Math.log10(x);
tf.setText(y?◆?"");
class?PressBCE?implements?ActionListener?{
tf.setText("");
class?PressBPN?implements?ActionListener?{
String?text?=?tf.getText();
if?(text?!=?"")?{
if?(text.charAt(0)?==?'-')
tf.setText(text.substring(1));
tf.setText("-"?◆?text.substring(0));
else?if?(text.charAt(0)?==?'.')
tf.setText("-0"?◆?text.substring(0));
class?PressBPoint?implements?ActionListener?{
if?(text.lastIndexOf(".")?==?-1)
tf.setText(text?◆?".");
class?PressB0?implements?ActionListener?{
tf.setText(text?◆?"0");
class?PressB1?implements?ActionListener?{
tf.setText(text?◆?"1");
class?PressBQuit?implements?ActionListener?{
System.exit(0);
public?void?Js()?{
tf.setText(text);
import java.awt.*;//引入包java.awt中所有的类
import java.awt.event.*;//引入包java.awt.event中所有的类.
public class Calculator extends WindowAdapter implements ActionListener//创建Calculator类,
实现ActionListener接口.
{
private double result=0,data1=0,radixPointDepth=1;//定义变量
private boolean radixPointIndicate=false,resultIndicate=false;
private char prec='◆';//创建优先默认字符"◆"
private Frame f;//创建窗口
private TextField tf;//创建文本框
private Panel p;//创建/面板容器
static public void main(String args[])//main方法,创建calGUI(图形用户界面),完成初试化
//构造器
Calculator de=new Calculator();//创建构造方法
de.go();
public void go()
f=new Frame("计算器");
p=new Panel();//运算界面p
//实例化按钮
f.add(tf,"North"); //把文本区域添加到框架的上方
f.add(p,"Center"); //把面版添加到框架的中间
//把按钮添加到面版上
p.add(b1);
p.add(b10);
p.add(b11);
//为按钮添加监听
b1.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
f.addWindowListener(this); //为框架添加监听
f.setVisible(true);//设置框架为可见
//监听程序
public void actionPerformed(ActionEvent e)
String s;
s=e.getActionCommand();
//SWITCH开关
switch(s.charAt(0))
if(resultIndicate)
result=0;
data1=0;
prec='◆';
Integer Int1=new Integer(s);
if(radixPointIndicate)
radixPointDepth=radixPointDepth/10;
data1=data1◆(Int1.intValue())*radixPointDepth;
else
data1=data1*10◆(Int1.intValue());
resultIndicate=false;
break;
case '◆': case '-':case '*':case '/':case '='://按了"◆、-、*、/",就
执行下面
if(s.charAt(0)!='='resultIndicate)
prec=s.charAt(0);
//用SWITCH开关运算出执行了"◆、-、*、/"的结果
switch(prec)
case '◆':
result=result◆data1;
case '-':
result=result-data1;
case '*':
result=result*data1;
case '/':
result=result/data1;
radixPointIndicate=false;
radixPointDepth=1;
//监听是否按了"="
if(s.charAt(0)!='=')
resultIndicate=true;
case '.':
radixPointIndicate=true;
//监听是否按了为"清零",是则对各数据清零
if(s.equals("清零"))
public void windowClosing(WindowEvent e)
我给你找找
package com.bj.calcultor;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calcultor extends Frame implements ActionListener {
public static void main(String[] args) {//定义主方
new Calcultor();//创建匿名对象,并调用test()方法;
//定义按钮名称
JButton [] button=new JButton[arr.length];
JButton reset = new JButton("CE");
//创建窗口,定义组件
//执行窗口事件:关闭窗口
private class WindowCloser extends WindowAdapter {
public void windowClosing(WindowEvent we) {
public Calcultor(){
super("计算器");//定义标题
//定义面板容器,并布局
//添加按钮,并给按钮添加名称
for (int i = 0; i arr.length; i◆◆) {
button[i]= new JButton(arr[i]);
jpanel.add(button[i]);
this.add("Center", jpanel);
for (int i = 0; i arr.length; i◆◆){
addWindowListener(new WindowCloser());
pack();
button[i].addActionListener(this);
reset.addActionListener(this);
@Override
public void actionPerformed(ActionEvent e) {//定义事件
// TODO Auto-generated method stub
Object target=e.getSource();
String lable=e.getActionCommand();
if(target==reset){
handleReset();
handleNumber(lable);
}else{
hadleOperator(lable);
boolean isFirstDigit=true;
private void hadleOperator(String key) {
if(operator.equals("◆")){
}else if (operator.equals("-")){
}else if (operator.equals("*")){
}else if (operator.equals("/")){
}else if(operator.equals("=")){
operator=key;
isFirstDigit=true;
private void handleNumber(String key) {
if(true){
}else if(!key.equals(".")){
isFirstDigit=false;
private void handleReset() {
operator="=";
String operator="=";
Double number=0.0;
import java.awt.*;
import java.awt.event.*; //导入包,因为后面要用到里面的东西
public class jisuanqi extends WindowAdapter {
Panel p1 = new Panel();
TextField txt; // TextField 组件,相当于一个文本区域
static int a;
static String s, str;
//入口函数,相当于C里面的MAIN函数
public static void main(String args[]) {
(new jisuanqi()).frame(); //调用函数,java里叫方法
//将窗口实例化,frame是一个窗口,awt包里的.算法方面自己看看就能明白
public void frame() {
Frame fm = new Frame("简单计算器");
b[i] = new Button(ss[i]);
txt.setEditable(false);
b[i].addActionListener(new buttonlistener());
fm.addWindowListener(this);
fm.setBackground(Color.red);
p1.setLayout(new BorderLayout());
p1.add(txt, "Center");
fm.add(p1, "North");
fm.pack();
fm.setVisible(true);
//关闭窗口的方法
public void windowClosing(WindowEvent e) {
//用这种方法在一个类里面定义另一个类是不好的,应该单独用以个文件承载,这个类是实现了ActionListener接口,用于监听按钮事件.正规的写法应该是在主类里面实现这个接口,然后写一个方法来调用.
class buttonlistener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Button btn = (Button) e.getSource();
if (btn.getLabel() == "=") {
jisuan();
str = String.valueOf(a);
txt.setText(str);
s = "";
} else if (btn.getLabel() == "◆") {
txt.setText("");
s = "◆";
} else if (btn.getLabel() == "-") {
s = "-";
} else if (btn.getLabel() == "/") {
s = "/";
} else if (btn.getLabel() == "*") {
s = "*";
} else {
txt.setText(txt.getText() ◆ btn.getLabel());
if (btn.getLabel() == "清空")
public void jisuan() {
if (s == "◆")
a ◆= Integer.parseInt(txt.getText());
else if (s == "-")
a -= Integer.parseInt(txt.getText());
else if (s == "*")
a *= Integer.parseInt(txt.getText());
else if (s == "/")
a /= Integer.parseInt(txt.getText());
a = Integer.parseInt(txt.getText());
//关闭按钮事件
class close implements ActionListener {
以上就是土嘎嘎小编为大家整理的计算器代码java解析相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!