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());
}
}
}