📄 computer.java
字号:
import java.awt.*;
import java.awt.event.*;
class CalcAppDemo extends Frame{
private TextField t_result;
private Panel p_main;//主面板
private Panel p_num;//数字面板
private Panel p_oper;//操作符面板
private Panel p_show;//显示面板
private Button b_num[];//数字按钮
private Button b_oper[];//操作符按钮
private String opn[] = {"0","0"};//二元操作数
private String num ="";//与显示框对应的字符串
public CalcAppDemo(String title){
setTitle(title);
t_result = new TextField("0.0",21);
p_main = new Panel();
p_num = new Panel();
p_oper = new Panel();
p_show = new Panel();
p_main.setLayout(new BorderLayout());
p_num.setLayout(new GridLayout(4,3,1,1));
p_oper.setLayout(new GridLayout(4,2,1,1));
b_num = new Button[12];
for(int i = 0;i < 9;i++){
b_num[i] = new Button(new Integer(i+1).toString());
}
b_num[9] = new Button("0");
b_num[10] = new Button("cls");
b_num[11] = new Button(".");
for(int i = 0;i < 12;i++){
p_num.add(b_num[i]);
}
b_oper = new Button[8];
b_oper[0] = new Button("+");
b_oper[1] = new Button("-");
b_oper[2] = new Button("*");
b_oper[3] = new Button("/");
b_oper[4] = new Button("pow");
b_oper[5] = new Button("sqrt");
b_oper[6] = new Button("+/-");
b_oper[7] = new Button("=");
for(int i = 0;i < 8;i++){
p_oper.add(b_oper[i]);
}
t_result.setEditable(false);
p_show.add(t_result,BorderLayout.NORTH);
p_main.add(p_show,BorderLayout.NORTH);
p_main.add(p_num,BorderLayout.WEST);
p_main.add(p_oper,BorderLayout.EAST);
this.add(p_main,BorderLayout.CENTER);
setSize(400,400);
setResizable(false);
pack();
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
ButtonListener bl = new ButtonListener();
for(int i=0;i<12;i++){
b_num[i].addActionListener(bl);
}
for(int i = 0;i < 8;i++){
b_oper[i].addActionListener(bl);
}
num = "";
opn[1]="";
}
class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e){
String label;
double res=0;
double tmp_oper[] = new double[2];
label =((Button)e.getSource()).getLabel();
if(!num.equals("")){
t_result.setText(num);
opn[0]= num;
opn[1] = t_result.getText();
for(int i=0;i<2;i++){
tmp_oper[i]=new Double(opn[i]).doubleValue();
}
}else{
num = "";
tmp_oper[0]=0.0d;
tmp_oper[1]=0.0d;
}
if(label.equals("+")){
num = new Double(tmp_oper[0]+tmp_oper[1]).toString();
}else if(label.equals("-")){
num = new Double(tmp_oper[0]-tmp_oper[1]).toString();
}else if(label.equals("*")){
num = new Double(tmp_oper[0]*tmp_oper[1]).toString();
}else if(label.equals("/")){
try{
num = new Double(tmp_oper[0]/tmp_oper[1]).toString();
}catch(ArithmeticException ae){}
}else if(label.equals("pow")){
num = new Double(Math.pow(tmp_oper[0],tmp_oper[1])).toString();
}else if(label.equals("sqrt")){
num = new Double(Math.sqrt(tmp_oper[0])).toString();
}else if(label.equals("cls")){
num = "0";
}else if(label.equals("=")){
t_result.setText(num);
}else if(label.equals("+/-")){
if ( num.indexOf( "-" ) < 0 ){
num = "-"+num;
}
t_result.setText(new Double(num).toString());
}else if(label.equals(".")){
}else{
num+=label;
opn[1]=num;
t_result.setText(num);
}
}
}
public static void main(String args[]){
CalcAppDemo c = new CalcAppDemo("简单的计算器程序");
c.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -