速度求JAVA编写的计算器代码
新手,不怎么懂 最好加翻译^-^
参考答案:你自己看一下吧?应该可以看的懂的.
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
public class CalcV1_0 implements ActionListener {
MenuBar mb;
Menu help;
MenuItem help_1,help_2;
Frame win=new Frame("CalcV1_0");
Label label=new Label();
Date date=new Date();
Panel num=new Panel();
Panel meth=new Panel();
TextArea display=new TextArea();
Button add1,sub,mul,div;
Button hex,ox;
int no1,no2,no4;
float no3;
String ch,ch3;
Button res=new Button("=");
Button canc=new Button("CE");
Button but7=new Button("7");
Button but8=new Button("8");
Button but9=new Button("9");
Button but4=new Button("4");
Button but5=new Button("5");
Button but6=new Button("6");
Button but1=new Button("1");
Button but2=new Button("2");
Button but3=new Button("3");
Button but0=new Button("0");
public void test()
{
mb=new MenuBar();
win.setMenuBar(mb);
help=new Menu("帮助");
mb.setHelpMenu(help);
help_1=new MenuItem("注意事项");
help_2=new MenuItem("联系我们");
help.add(help_1);
help.add(help_2);
label.setText("今天星期"+Integer.toString(date.getDay()));
add1=new Button("+");
sub=new Button("-");
mul=new Button("*");
div=new Button("/");
hex=new Button("十六进制");
ox=new Button("二进制");
win.setLayout(new GridLayout(4,0));
num.setLayout(new GridLayout(4,3));
meth.setLayout(new GridLayout(0,4));
num.add(but7);
num.add(but8);
num.add(but9);
num.add(but4);
num.add(but5);
num.add(but6);
num.add(but1);
num.add(but2);
num.add(but3);
num.add(but0);
num.add(canc);
num.add(res);
but0.addActionListener(this);
but1.addActionListener(this);
but2.addActionListener(this);
but3.addActionListener(this);
but4.addActionListener(this);
but5.addActionListener(this);
but6.addActionListener(this);
but7.addActionListener(this);
but8.addActionListener(this);
but9.addActionListener(this);
canc.addActionListener(new CE());
add1.addActionListener(new METH());
sub.addActionListener(new METH());
mul.addActionListener(new METH());
div.addActionListener(new METH());
res.addActionListener(new RES());
hex.addActionListener(new H());
ox.addActionListener(new O());
help_1.addActionListener(new HELP1());
help_2.addActionListener(new HELP2());
add1.setSize(10, 10);
meth.add(add1);
meth.add(sub);
meth.add(mul);
meth.add(div);
meth.add(hex);
meth.add(ox);
win.add(display);
win.add(num);
win.add(meth);
win.add(label);
win.setSize(400,400);
win.setVisible(true);
win.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e){
display.setBackground(Color.white);
display.append(e.getActionCommand());
}
private class CE implements ActionListener{
public void actionPerformed(ActionEvent ex){
display.setBackground(Color.white);
display.setText("");
no1=0;
no2=0;
no3=0;
no4=0;
}
}
private class METH implements ActionListener{
public void actionPerformed(ActionEvent ey){
no1=Integer.parseInt(display.getText());
display.setText("");
ch=ey.getActionCommand();
}
}
private class RES implements ActionListener{
public void actionPerformed(ActionEvent es){
no2=Integer.parseInt(display.getText());
if(ch=="+")
{no3=no1+no2;
ch3=Float.toString(no3);
display.setText(ch3);
}
else if(ch=="-")
{no3=no1-no2;
ch3=Float.toString(no3);
display.setText(ch3);
}
else if(ch=="*")
{no3=no1*no2;
ch3=Float.toString(no3);
display.setText(ch3);
}
else if(ch=="/")
{no3=(float)no1/no2;
ch3=Float.toString(no3);
display.setText(ch3);
}
}
}
private class H implements ActionListener{
public void actionPerformed(ActionEvent ed){
no4=Integer.parseInt(display.getText());
display.setText("");
int[] c=new int[10];
int t=0,i=0;
do
{
c[t]=no4%16;
t++;
no4=no4/16;
} while((no4/16)!=0);
c[t]=no4%16;
for(i=t;i>=0;i--)
{
if(c[i]==10)
display.append("A");
else if(c[i]==11)
display.append("B");
else if(c[i]==12)
display.append("C");
else if(c[i]==13)
display.append("D");
else if(c[i]==14)
display.append("E");
else if(c[i]==15)
display.append("F");
else display.append(Integer.toString(c[i]));
}
}
}
private class O implements ActionListener{
public void actionPerformed(ActionEvent e){
no4=Integer.parseInt(display.getText());
int a[];
display.setText("");
a=new int[30];
int i=0;
while(no4/2!=0)
{
a[i]=no4%2;
no4=no4/2;
i++;
}
a[i]=no4%2;
for(;i>=0;i--)
display.append(Integer.toString(a[i]));
}
}
private class HELP1 implements ActionListener{
public void actionPerformed(ActionEvent e){
display.setBackground(Color.orange);
display.setText("请在完成一次运算后按下CE按扭清除结果!" +
"否则运行错误!该版本将不断完善,期待你的支持!");
}
}
private class HELP2 implements ActionListener{
public void actionPerformed(ActionEvent e){
display.setBackground(Color.orange);
display.setText("Email:pc_386@163.com");
}
}
public static void main (String[]args){
CalcV1_0 s=new CalcV1_0();
s.test();
}
}