?? my_caculator.java
字號:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.*;
public class My_caculator extends Applet implements ActionListener {
Panel pn,pc,pe; //定義3個PANEL,分別來裝文本框,數字按紐,控制按紐
JButton digit[]=new JButton[12]; //定義數字鍵按紐,包括小數點,和等號
JButton caculate[]=new JButton[4]; //定義運算符
JButton control[]=new JButton[2]; //定義控制按紐,包括退格和清空
JTextField DisplayText;
double c1=0.0,c2=0.0; //運算的兩個數
char flag='n'; //標志按了哪個運算符,初始為n,表示什么運算符沒按
public void init() {
//------------------PANEL的初始化-------
pn=new Panel();
pe=new Panel();
pc=new Panel();
setLayout(new BorderLayout(8,10));
add(pn,BorderLayout.NORTH);
add(pe,BorderLayout.EAST);
add(pc,BorderLayout.CENTER);
//------------------------------------
//-----------計算器顯示框初始化-------------
DisplayText=new JTextField(23);
pn.add(DisplayText);
DisplayText.setText("0");
DisplayText.setHorizontalAlignment(JTextField.RIGHT);
DisplayText.setForeground(Color.blue);
DisplayText.setEditable(false);
//------------------------------------
//--------------控制按紐初始化--------------
control[0]=new JButton("退格");
control[1]=new JButton("清零");
pe.setLayout(new GridLayout(2,1,10,10));
pe.add(control[0]);
pe.add(control[1]);
//----------------------------------------
//----------------數字按紐以及運算按紐初始化-----
caculate[0]=new JButton("+");
caculate[1]=new JButton("-");
caculate[2]=new JButton("*");
caculate[3]=new JButton("/");
for(int i=0;i<10;i++)
digit[i]=new JButton(String.valueOf(i));
digit[10]=new JButton(".");
digit[11]=new JButton("=");
pc.setLayout(new GridLayout(4,4,8,8));
for(int i=7;i<=9;i++)
pc.add(digit[i]);
pc.add(caculate[0]);
for(int i=4;i<=6;i++)
pc.add(digit[i]);
pc.add(caculate[1]);
for(int i=1;i<=3;i++)
pc.add(digit[i]);
pc.add(caculate[2]);
pc.add(digit[0]);
pc.add(digit[10]);
pc.add(digit[11]);
pc.add(caculate[3]);
//-----------------------------------------
//----------注冊監聽及按紐顏色-----------------------------------------------------
for(int i=0;i<12;i++){
digit[i].addActionListener(this);
digit[i].setForeground(Color.blue);
if(i<4){caculate[i].addActionListener(this);caculate[i].setForeground(Color.red);}
if(i<2){control[i].addActionListener(this);control[i].setForeground(Color.red);}
}
digit[11].setForeground(Color.red);
//-------------------------------------------------------------------------------
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().charAt(0)>='1'&& e.getActionCommand().charAt(0)<='9'){ //按的是數字鍵
if(DisplayText.getText().indexOf('0')==0&&DisplayText.getText().indexOf('.')<0)DisplayText.setText("");
DisplayText.setText(DisplayText.getText()+e.getActionCommand());
}
else if(e.getActionCommand().equals("0")){ //按的是0
if(DisplayText.getText().indexOf('0')!=0||DisplayText.getText().indexOf('.')>=0)
DisplayText.setText(DisplayText.getText()+e.getActionCommand());
}
else if(e.getActionCommand().equals(".")){ //按的是小數點
if(DisplayText.getText().indexOf('.')<0)
DisplayText.setText(DisplayText.getText()+e.getActionCommand());
}
else if(e.getActionCommand().equals("+")||e.getActionCommand().equals("-")||e.getActionCommand().equals("*")||e.getActionCommand().equals("/")) { //按的是運算符
c1=Double.parseDouble(DisplayText.getText());
DisplayText.setText("");
switch(e.getActionCommand().charAt(0)){
case '+':flag='p';break;
case '-':flag='m';break;
case '*':flag='t';break;
case '/':flag='d';
}
}
else if(e.getActionCommand().equals("=")) //按的是等號
switch(flag){
case 'p':c2=Double.parseDouble(DisplayText.getText());c1+=c2;DisplayText.setText(String.valueOf(c1));break;
case 'm':c2=Double.parseDouble(DisplayText.getText());c1-=c2;DisplayText.setText(String.valueOf(c1));break;
case 't':c2=Double.parseDouble(DisplayText.getText());c1*=c2;DisplayText.setText(String.valueOf(c1));break;
case 'd':c2=Double.parseDouble(DisplayText.getText());if(c2==0.0)DisplayText.setText("被除數不能為零");else {c1/=c2;DisplayText.setText(String.valueOf(c1));}break;
case 'n':c1=0;DisplayText.setText("老大,還沒有按運算符呢!");
}
else if(e.getActionCommand().equals("清零")){ //按的是清零
c1=c2=0.0;
DisplayText.setText("0");
flag='n';
}
else { //按的是退格
if(DisplayText.getText().equals("0"));
else if(DisplayText.getText().length()==1)
DisplayText.setText("0");
else
DisplayText.setText(DisplayText.getText().substring(0,DisplayText.getText().length()-1));
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -