package three;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Color;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Stack;
@SuppressWarnings("serial")
public class Calculate extends Frame {
protected static TextField result;
protected static Stack<String> operation = new Stack<String>();
protected static Stack<Double> number = new Stack<Double>();
protected static boolean inputing = false;//用于标志TextField文本是否第一次无间断地输入
protected static boolean isinputoperation=false;//刚输入的是操作还是数据
protected static boolean isExp=false;//刚输入的是否指数操作
protected static boolean ispower=false;//将要输入的是否指数幂
protected static CheckboxGroup dataFormat;
protected static CheckboxGroup degree;
protected static String lastOperate="";//存储最后一个操作用于连续按=号的操作
protected static double lastData=0;//存储最后一个操作数用于连续按=号的操作数
protected static boolean lastIsEql=false;//用于判断上一个操作是否‘=’
protected static Checkbox hex;
protected static Checkbox dec;
protected static Checkbox oct;
protected static Checkbox bin;
protected static String formerSelectItem=null;
protected static Checkbox angle;
protected static Checkbox radian;
protected static Checkbox gradient;
public Calculate() {
setBounds(300, 200, 540, 320);
setResizable(false);
setVisible(true);
setFocusable(true);
setBackground(new Color(236, 233, 216));
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
setVisible(false);
System.exit(-1);
}
});
addCompontent();
createMenu();
}
public static void init(){
inputing = false;
isinputoperation=false;
isExp=false;
ispower=false;
operation.clear();
number.clear();
}
private void addCompontent() {
result = new TextField("0", 35);
result.addKeyListener(new MyKeyAdapter());
result.setEditable(false);
result.setBackground(new Color(255,255,255));
addKeyListener(new MyKeyAdapter());
add(result, BorderLayout.NORTH);
Panel p1 = new Panel();
Panel p2 = new Panel();
Panel p3 = new Panel();
Panel p4 = new Panel();
Panel p5 = new Panel();
p1.setLayout(new BorderLayout());
p2.setLayout(new GridLayout(1, 10));
p3.setLayout(new BorderLayout());
p4.setLayout(new FlowLayout(FlowLayout.LEFT));
p5.setLayout(new GridLayout(5, 12,6,3));
dataFormat = new CheckboxGroup();
hex = new Checkbox("十六进制", dataFormat, false);
dec = new Checkbox("十进制", dataFormat, true);
oct = new Checkbox("八进制", dataFormat, false);
bin = new Checkbox("二进制", dataFormat, false);
hex.addItemListener(new CheckboxActionListener());
dec.addItemListener(new CheckboxActionListener());
oct.addItemListener(new CheckboxActionListener());
bin.addItemListener(new CheckboxActionListener());
formerSelectItem=dataFormat.getSelectedCheckbox().getLabel();
p2.add(hex);
p2.add(dec);
p2.add(oct);
p2.add(bin);
degree = new CheckboxGroup();
angle = new Checkbox("角度", degree, true);
radian = new Checkbox("弧度", degree, false);
gradient = new Checkbox("梯度", degree, false);
gradient.setEnabled(false);
p2.add(angle);
p2.add(radian);
p2.add(gradient);
angle.addItemListener(new CheckboxActionListener());
radian.addItemListener(new CheckboxActionListener());
gradient.addItemListener(new CheckboxActionListener());
p4.add(new Checkbox("Inv", null, false));
p4.add(new Checkbox("Hyp", null, false));
p4.add(new Label("\t"));
TextField M=new TextField();
M.setEditable(false);
p4.add(M);
TextField Mdata=new TextField("");
Mdata.setVisible(false);
p4.add(new Label("\t"));
p4.add(Mdata);
p4.add(new Label("\t"));
Button b1 = new Button("Backspace");
b1.setForeground(new Color(255,0,0));
b1.addActionListener(new OtherActionListener());
b1.setBackground(new Color(243, 243, 238));
p4.add(b1);
Button b2 = new Button("CE");
b2.setForeground(new Color(255,0,0));
b2.setBackground(new Color(243, 243, 238));
b2.addActionListener(new OtherActionListener());
p4.add(b2);
Button b3 = new Button("C");
b3.setForeground(new Color(255,0,0));
b3.addActionListener(new OtherActionListener());
b3.setBackground(new Color(243, 243, 238));
p4.add(b3);
Button b4 = new Button("Sta");
b4.setForeground(new Color(0,0,255));
b4.setBackground(new Color(243, 243, 238));
b4.setEnabled(false);
p5.add(b4);
Button b5 = new Button("F-E");
b5.setForeground(new Color(255,0,255));
b5.setEnabled(false);
b5.setBackground(new Color(243, 243, 238));
p5.add(b5);
Button b6 = new Button("(");
b6.setForeground(new Color(255,0,255));
b6.addActionListener(new OperateActionListener());
b6.setBackground(new Color(243, 243, 238));
p5.add(b6);
Button b7 = new Button(")");
b7.setForeground(new Color(255,0,255));
b7.addActionListener(new OperateActionListener());
b7.setBackground(new Color(243, 243, 238));
p5.add(b7);
Button b8 = new Button("MC");
b8.setForeground(new Color(255,0,0));
b8.addActionListener(new RegisterActionListener(result,M,Mdata));
b8.setBackground(new Color(243, 243, 238));
p5.add(b8);
p5.add(new Label(""));
Button b9 = new Button("7");
b9.setForeground(new Color(0,0,255));
b9.addActionListener(new NumberActionListener());
b9.setBackground(new Color(243, 243, 238));
p5.add(b9);
Button b10 = new Button("8");
b10.setForeground(new Color(0,0,255));
b10.addActionListener(new NumberActionListener());
b10.setBackground(new Color(243, 243, 238));
p5.add(b10);
Button b11 = new Button("9");
b11.setForeground(new Color(0,0,255));
b11.addActionListener(new NumberActionListener());
b11.setBackground(new Color(243, 243, 238));
p5.add(b11);
Button b12 = new Button("/");
b12.setForeground(new Color(255,0,0));
b12.addActionListener(new OperateActionListener());
b12.setBackground(new Color(243, 243, 238));
p5.add(b12);
Button b13 = new Button("Mod");
b13.setForeground(new Color(255,0,0));
b13.addActionListener(new OperateActionListener());
b13.setBackground(new Color(243, 243, 238));
p5.add(b13);
Button b14 = new Button("And");
b14.setForeground(new Color(255,0,0));
b14.setEnabled(false);
b14.setBackground(new Color(243, 243, 238));
p5.add(b14);
Button b15 = new Button("Ave");
b15.setBackground(new Color(243, 243, 238));
b15.setEnabled(false);
p5.add(b15);
Button b16 = new Button("e");
b16.setForeground(new Color(255,0,255));
b16.addActionListener(new NumberActionListener());
b16.setBackground(new Color(243, 243, 238));
p5.add(b16);
Button b17 = new Button("Exp");
b17.setForeground(new Color(255,0,255));
b17.addActionListener(new OperateActionListener());
b17.setBackground(new Color(243, 243, 238));
p5.add(b17);
Button b18 = new Button("ln");
b18.setForeground(new Color(255,0,255));
b18.addActionListener(new OperateActionListener());
b18.setBackground(new Color(243, 243, 238));
p5.add(b18);
Button b19 = new Button("MR");
b19.setForeground(new Color(255,0,0));
b19.addActionListener(new RegisterActionListener(result,M,Mdata));
b19.setBackground(new Color(243, 243, 238));
p5.add(b19);
p5.add(new Label(""));
Button b20 = new Button("4");
b20.setForeground(new Color(0,0,255));
b20.addActionListener(new NumberActionListener());
b20.setBackground(new Color(243, 243, 238));
p5.add(b20);
Button b21 = new Button("5");
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
java_Calculate.rar (25个子文件)
java_three
.project 386B
bin
java.policy.applet 141B
three
CheckboxActionListener.class 808B
MyKeyAdapter.class 3KB
TestCalculate.class 496B
OperateActionListener.class 932B
OtherActionListener.class 1KB
MenuItemActionListener.class 1KB
Calculate.class 13KB
Operation.class 6KB
Calculate$1.class 687B
NumberActionListener.class 905B
RegisterActionListener.class 2KB
.settings
org.eclipse.jdt.core.prefs 629B
src
three
CheckboxActionListener.java 377B
Operation.java 9KB
TestCalculate.java 137B
Calculate.java 17KB
NumberActionListener.java 395B
RegisterActionListener.java 1KB
OperateActionListener.java 416B
MyKeyAdapter.java 3KB
MenuItemActionListener.java 961B
OtherActionListener.java 879B
.classpath 301B
共 25 条
- 1
资源评论
- hotchpotch2013-01-21程序不可运行~
- GGjins2012-06-14不错的选题!只可惜不知道是什么原因我的电脑上运行不出来,运行时界面不能正确地显示。
radui
- 粉丝: 16
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功