锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
public class jisuanqi extends JFrame implements ActionListener{
private float Num1,Num2,Num; //鍒嗗埆鐢ㄦ潵瀛樺偍榪愮畻鏁板拰緇撴灉
private char sign; //瀛樺偍杈撳叆鐨勮繍綆楃
private double Num0;
//瀹氫箟騫跺垵濮嬪寲鎺т歡
private JPanel p1=new JPanel();
private JPanel p2=new JPanel();
private JPanel p3=new JPanel();
private JPanel p4=new JPanel();
private JPanel p5=new JPanel();
private JPanel p6=new JPanel();
private JPanel p7=new JPanel();
private JPanel p8=new JPanel();
private JPanel p9=new JPanel();
private JTextField text=new JTextField("0",20);//瀹氫箟鏂囨湰鍩熷垵濮嬪間負(fù)0
private JButton clear=new JButton("娓呴櫎");
private JButton b0=new JButton("0");
private JButton b1=new JButton("1");
private JButton b2=new JButton("2");
private JButton b3=new JButton("3");
private JButton b4=new JButton("4");
private JButton b5=new JButton("5");
private JButton b6=new JButton("6");
private JButton b7=new JButton("7");
private JButton b8=new JButton("8");
private JButton b9=new JButton("9");
private JButton a=new JButton("A");
private JButton b=new JButton("B");
private JButton c=new JButton("C");
private JButton d=new JButton("D");
private JButton e=new JButton("E");
private JButton f=new JButton("F");
private JButton dian=new JButton(".");
private JButton cheng=new JButton("*");
private JButton chu=new JButton("/");
private JButton jia=new JButton("+");
private JButton jian=new JButton("-");
private JButton deng=new JButton("=");
private JButton sqr=new JButton("sqrt");
private JButton mee=new JButton("^");
private JRadioButton ox=new JRadioButton("浜岃繘鍒?,false);//鍒濆
private JRadioButton bx=new JRadioButton("鍏繘鍒?,false);
private JRadioButton dx=new JRadioButton("鍗佽繘鍒?,true);
private JRadioButton hex=new JRadioButton("鍗佸叚榪涘埗",false);
public jisuanqi(){
super("璁$畻鍣?);
setResizable(false);//灞忚斀鏈澶у寲
this.getContentPane().setLayout(new GridLayout(9,1));
this.getContentPane().add(p1);
this.getContentPane().add(p6);
this.getContentPane().add(p2);
this.getContentPane().add(p3);
this.getContentPane().add(p4);
this.getContentPane().add(p5);
this.getContentPane().add(p7);
this.getContentPane().add(p8);
this.getContentPane().add(p9);
//鎸夐挳甯冨眬
p1.add(text);
p6.setLayout(new BorderLayout());
p6.add("Center",clear);
p2.setLayout(new GridLayout(1,4));
p2.add(ox); p2.add(bx); p2.add(dx); p2.add(hex);
p3.setLayout(new GridLayout(1,4));
p3.add(b7); p3.add(b8); p3.add(b9); p3.add(a);
p4.setLayout(new GridLayout(1,4));
p4.add(b4); p4.add(b5); p4.add(b6); p4.add(b);
p5.setLayout(new GridLayout(1,4));
p5.add(b1); p5.add(b2); p5.add(b3); p5.add(c);
p7.setLayout(new GridLayout(1,4));
p7.add(dian); p7.add(b0); p7.add(mee); p7.add(d);
p8.setLayout(new GridLayout(1,4));
p8.add(jia); p8.add(jian); p8.add(sqr); p8.add(e);
p9.setLayout(new GridLayout(1,4));
p9.add(cheng); p9.add(chu); p9.add(deng);p9.add(f);
b0.addActionListener(this);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
a.addActionListener(this);
b.addActionListener(this);
c.addActionListener(this);
d.addActionListener(this);
e.addActionListener(this);
f.addActionListener(this);
a.setEnabled(false); //鍒濆
b.setEnabled(false);
c.setEnabled(false);
d.setEnabled(false);
e.setEnabled(false);
f.setEnabled(false);
b0.addKeyListener(new KeyBoard());
b1.addKeyListener(new KeyBoard());
b2.addKeyListener(new KeyBoard());
b3.addKeyListener(new KeyBoard());
b4.addKeyListener(new KeyBoard());
b5.addKeyListener(new KeyBoard());
b6.addKeyListener(new KeyBoard());
b7.addKeyListener(new KeyBoard());
b8.addKeyListener(new KeyBoard());
b9.addKeyListener(new KeyBoard());
a.addKeyListener(new KeyBoard());
b.addKeyListener(new KeyBoard());
c.addKeyListener(new KeyBoard());
d.addKeyListener(new KeyBoard());
e.addKeyListener(new KeyBoard());
f.addKeyListener(new KeyBoard());
b0.setForeground(Color.blue);
b1.setForeground( Color.blue);
b2.setForeground( Color.blue);
b3.setForeground( Color.blue);
b4.setForeground( Color.blue);
b5.setForeground( Color.blue);
b6.setForeground( Color.blue);
b7.setForeground( Color.blue);
b8.setForeground( Color.blue);
b9.setForeground( Color.blue);
a.setForeground( Color.blue);
b.setForeground( Color.blue);
c.setForeground( Color.blue);
d.setForeground( Color.blue);
e.setForeground( Color.blue);
f.setForeground( Color.blue);
dian.setForeground( Color.blue);
clear.addActionListener(this);
jia.addActionListener(this);
jian.addActionListener(this);
cheng.addActionListener(this);
chu.addActionListener(this);
deng.addActionListener(this);
dian.addActionListener(this);
sqr.addActionListener(this);
mee.addActionListener(this);
clear.addKeyListener(new KeyBoard());
jia.addKeyListener(new KeyBoard());
jian.addKeyListener(new KeyBoard());
cheng.addKeyListener(new KeyBoard());
chu.addKeyListener(new KeyBoard());
deng.addKeyListener(new KeyBoard());
dian.addKeyListener(new KeyBoard());
sqr.addKeyListener(new KeyBoard());
mee.addKeyListener(new KeyBoard());
cheng.setForeground(Color.red);
chu.setForeground(Color.red);
jia.setForeground(Color.red);
jian.setForeground(Color.red);
deng.setForeground(Color.black);
sqr.setForeground(Color.red);
mee.setForeground(Color.red);
ox.addItemListener(new checkbox(2));
bx.addItemListener(new checkbox(8));
dx.addItemListener(new checkbox(10));
hex.addItemListener(new checkbox(16));
/*private */ButtonGroup tk=new ButtonGroup();
tk.add(ox);
tk.add(bx);
tk.add(dx);
tk.add(hex);
ox.setForeground(Color.black);
bx.setForeground(Color.black);
dx.setForeground(Color.black);
hex.setForeground(Color.black);
text.addKeyListener(new KeyBoard());
pack();show();
//紿楀彛鍏抽棴
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
text.setEditable(false);//鍘繪帀鏂囨湰鐨勫彲緙栬緫鎬?br />
text.setHorizontalAlignment(text.RIGHT);//鏂囨湰鍙沖榻?br />
}
public class checkbox implements ItemListener{
int k;
public checkbox(int kt){
k=kt;
}
public void itemStateChanged(ItemEvent ev)
{
//瑙勫畾褰撹繘鍒惰漿鎹㈡椂浠ュ墠杈撳叆鐨勮繍綆楃澶辨晥
//浜岃繘鍒?br />
if (k==2)
{a.setEnabled(false);
b.setEnabled(false);
c.setEnabled(false);
d.setEnabled(false);
e.setEnabled(false);
f.setEnabled(false);
b9.setEnabled(false);
b8.setEnabled(false);
b7.setEnabled(false);
b6.setEnabled(false);
b5.setEnabled(false);
b4.setEnabled(false);
b3.setEnabled(false);
b2.setEnabled(false);
b1.setEnabled(true);
b0.setEnabled(true);
dian.setEnabled(false);
cheng.setEnabled(false);
chu.setEnabled(false);
jia.setEnabled(true);
jian.setEnabled(true);
sqr.setEnabled(false);
mee.setEnabled(false);
}
if (k==8)
{a.setEnabled(false);
b.setEnabled(false);
c.setEnabled(false);
d.setEnabled(false);
e.setEnabled(false);
f.setEnabled(false);
b9.setEnabled(false);
b8.setEnabled(false);
b7.setEnabled(true);
b6.setEnabled(true);
b5.setEnabled(true);
b4.setEnabled(true);
b3.setEnabled(true);
b2.setEnabled(true);
b1.setEnabled(true);
b0.setEnabled(true);
dian.setEnabled(false);
cheng.setEnabled(false);
chu.setEnabled(false);
jia.setEnabled(true);
jian.setEnabled(true);
sqr.setEnabled(false);
mee.setEnabled(false);
Num0=Double.parseDouble(text.getText());
Num0=Math.sqrt(Num0);
text.setText(""+Num0);
}
if(k==10)
{a.setEnabled(false);
b.setEnabled(false);
c.setEnabled(false);
d.setEnabled(false);
e.setEnabled(false);
f.setEnabled(false);
b9.setEnabled(true);
b8.setEnabled(true);
b7.setEnabled(true);
b6.setEnabled(true);
b5.setEnabled(true);
b4.setEnabled(true);
b3.setEnabled(true);
b2.setEnabled(true);
b1.setEnabled(true);
b0.setEnabled(true);
dian.setEnabled(true);
cheng.setEnabled(true);
chu.setEnabled(true);
jia.setEnabled(true);
jian.setEnabled(true);
sqr.setEnabled(true);
mee.setEnabled(true);
}
if(k==16)
{a.setEnabled(true);
b.setEnabled(true);
c.setEnabled(true);
d.setEnabled(true);
e.setEnabled(true);
f.setEnabled(true);
b9.setEnabled(true);
b8.setEnabled(true);
b7.setEnabled(true);
b6.setEnabled(true);
b5.setEnabled(true);
b4.setEnabled(true);
b3.setEnabled(true);
b2.setEnabled(true);
b1.setEnabled(true);
b0.setEnabled(true);
dian.setEnabled(false);
cheng.setEnabled(false);
chu.setEnabled(false);
jia.setEnabled(true);
jian.setEnabled(true);
sqr.setEnabled(false);
mee.setEnabled(false);
}
}}
//鎸夐挳浜嬩歡
public void actionPerformed(ActionEvent e){
String input=e.getActionCommand();//瀹氫箟input瀛樺偍鎸夐挳鐐瑰嚮浜х敓鐨勫?br />
String str="0123456789ABCDEF";
String ysf="+-*^/";
//鏁板瓧杈撳叆
if(str.indexOf(input)>=0){
if(text.getText().equals("0"))
text.setText(input);//鑻extField涓垵濮嬪間負(fù)闆跺垯TextField涓樉紺鴻緭鍏ョ殑鏁板瓧
else
text.setText(text.getText()+input);//濡傛灉TextField涓殑鍊間笉鏄浂鍒欏彔鍔?br />
}
//灝忔暟鐐?br />
else if(input.equals("."))
text.setText(text.getText()+input);
//姹傚紑鏍?br />
else if(input.equals("sqrt")){
Num0=Double.parseDouble(text.getText());
Num0=Math.sqrt(Num0);
text.setText(""+Num0);
}
//榪愮畻絎?br />
else if(ysf.indexOf(input)>=0){
Num1=Float.parseFloat(text.getText());//杈撳叆榪愮畻絎︽椂Num1瀛樺偍TextField涓殑鍊?br />
text.setText("");
sign=ysf.charAt(ysf.indexOf(input));//sign璇誨彇杈撳叆鐨勮繍綆楃
}
//絳夊彿
else if(input.equals("=")){
Num2=Float.parseFloat(text.getText());//Num2瀛樺偍鐐瑰嚮榪愮畻絎﹀悗鐨勬暟鍊?br />
switch(sign){
//鍔犳硶
case '+':{
Num=Num1+Num2;
text.setText(""+Num);
break;
}
//鍑忔硶
case '-':{
Num=Num1-Num2;
text.setText(""+Num);
break;
}
//涔樻硶
case '*':{
Num=Num1*Num2;
text.setText(""+Num);
break;
}
//闄ゆ硶
case '/':{
if(Num2==0)
text.setText("闄ゆ暟涓嶈兘涓洪浂");//闄ゆ暟涓洪浂錛屽垯鎻愮ず闄ゆ暟涓嶈兘涓洪浂
else{
Num=Num1/Num2;
text.setText(""+Num);
break;
}
}
//姹傚箓
case '^':{
int i=0;
float s=1;
for (i=1;i<=Num2;i++)
s=s*Num1;
Num=s;
text.setText(""+Num);
break;
}
}
}
//娓呴櫎
else if(input.equals("娓呴櫎")){
Num=' ';
Num1=' ';
Num2=' ';
sign=' ';
text.setText("0");
}
}
public static void main(String args[]){
jisuanqi jsq=new jisuanqi();
}
}