1. 程式人生 > 其它 >java怎麼製作簡單程式_java學習—— 製作簡單的計算器

java怎麼製作簡單程式_java學習—— 製作簡單的計算器

由於上學的安卓結課任務沒有認真完成(做一個計算器),所以在java學習過程中我想做一個計算器。我完成的功能十分簡單,只有簡單的加減乘除,歡迎各位指出問題一起來改進。 設計思路很簡單:建立面板,新增按鈕,實現按鈕即可。至此,我還是停留在基礎的Swing程式設計中,再加上上次的五子棋,我對這一方面有了更深入的瞭解,掌握了對其簡單的應用,在未來我也會遇到更多的問題,我也會學到更多。

下面是計算器的原始碼,寫的不規範請諒解,也歡迎指出!

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class Calculator extends JFrame implements ActionListener { //計算器類

boolean a=true;

JTextArea dispresult=new JTextArea("0.");

JButton buttons[]=new JButton[16];

JButton reset = new JButton("CE");

double result=0;

char symbol='\0';

public Calculator(){ //構造一個計算器

dispresult.setEditable(false);

Font font=new Font("Default", Font.PLAIN, 30);

dispresult.setFont(font);

JPanel resultField=new JPanel(new BorderLayout());

JPanel button=new JPanel();

String s[]={ "7", "8", "9", "/", "4", "5", "6", "*", "1",

"2", "3", "-", ".", "0", "=", "+" };

for(int i=0;i

buttons[i] = new JButton(s[i]);

button.add(buttons[i]); //將按鈕新增到button面板

}

for(int i=0;i

buttons[i].addActionListener(this);

}

reset.addActionListener(this);

resultField.add("Center",dispresult);

resultField.add("East",reset);

button.setLayout(new GridLayout(4,4,3,3)); //網格佈局

getContentPane().add(button,BorderLayout.SOUTH);

getContentPane().add(resultField);

setBounds(200,200,500,200);

setVisible(true);

}

public void pressNumber(String s){ //文字域顯示按下的數字

if(a){

dispresult.setText(s);

a=false;

}

else dispresult.append(s);

}

public static void main(String[] args){

new Calculator();

}

@Override

public void actionPerformed(ActionEvent e) { //按鈕介面的實現

// TODO Auto-generated method stub

Object target=e.getSource();

if(target==reset){

dispresult.setText("0.");

}

if(target==buttons[0]){

pressNumber("7");

}

if(target==buttons[1]){

pressNumber("8");

}

if(target==buttons[2]){

pressNumber("9");

}

if(target==buttons[3]){

symbol='/';

a=true;

result=Double.parseDouble(dispresult.getText());

}

if(target==buttons[4]){

pressNumber("4");

}

if(target==buttons[5]){

pressNumber("5");

}

if(target==buttons[6]){

pressNumber("6");

}

if(target==buttons[7]){

symbol='*';

a=true;

result=Double.parseDouble(dispresult.getText());

}

if(target==buttons[8]){

pressNumber("1");

}

if(target==buttons[9]){

pressNumber("2");

}

if(target==buttons[10]){

pressNumber("3");

}

if(target==buttons[11]){

symbol='-';

a=true;

result=Double.parseDouble(dispresult.getText());

}

if(target==buttons[12]){

pressNumber(".");

}

if(target==buttons[13]){

pressNumber("0");

}

if(target==buttons[14]){

if(symbol=='+'){

result+=Double.parseDouble(dispresult.getText());

dispresult.setText("");

pressNumber(String.valueOf(result));

a=true;

}

else if(symbol=='-'){

result-=Double.parseDouble(dispresult.getText());

dispresult.setText("");

pressNumber(String.valueOf(result));

a=true;

}

else if(symbol=='*'){

result*=Double.parseDouble(dispresult.getText());

dispresult.setText("");

pressNumber(String.valueOf(result));

a=true;

}

else if(symbol=='/'){

if(Double.parseDouble(dispresult.getText())==0){

dispresult.setText("error");

a=true;

}

result/=Double.parseDouble(dispresult.getText());

dispresult.setText("");

pressNumber(String.valueOf(result));

a=true;

}

}

if(target==buttons[15]){

symbol='+';

a=true;

result=Double.parseDouble(dispresult.getText());

}

}

}