프로그래밍

 3198, 1/160 회원가입  로그인  
   ksbgenius
   [자바]계산기 프로그램(추가질문)

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3041 [복사]


import java.awt.event.*;
import javax.swing.*;


class CalculatorTest extends JFrame{
        private JButton button1, button2,button3,button4,button5;
        private JButton button6,button7,button8,button9,button10;
        private JButton button11,button12,button13,button14,button15;
        private JButton button16;
        private JTextField t,t1;
        private String operator = new String("");
        private int save = 0;
        public CalculatorTest(){
                this.setSize(500,500);
                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                this.setTitle("계산기");
                JPanel panel = new JPanel();
                JLabel label = new JLabel("결과 = ");
                t = new JTextField(40);
                t1 = new JTextField(30);
                button1 = new JButton("C");
                button2 = new JButton("1");
                button3 = new JButton("2");
                button4 = new JButton("3");
                button5 = new JButton("4");
                button6 = new JButton("5");
                button7 = new JButton("6");
                button8 = new JButton("7");
                button9 = new JButton("8");
                button10 = new JButton("9");
                button11 = new JButton("0");
                button12 = new JButton("+");
                button13 = new JButton("-");
                button14 = new JButton("/");
                button15 = new JButton("*");
                button16 = new JButton("=");
                
                button1.addActionListener(new MyListener());
                button2.addActionListener(new MyListener());
                button3.addActionListener(new MyListener());
                button4.addActionListener(new MyListener());
                button5.addActionListener(new MyListener());
                button6.addActionListener(new MyListener());
                button7.addActionListener(new MyListener());
                button8.addActionListener(new MyListener());
                button9.addActionListener(new MyListener());
                button10.addActionListener(new MyListener());
                button11.addActionListener(new MyListener());
                button12.addActionListener(new MyListener());
                button13.addActionListener(new MyListener());
                button14.addActionListener(new MyListener());
                button15.addActionListener(new MyListener());
                button16.addActionListener(new MyListener());
                
                panel.add(button1);
                panel.add(button2);
                panel.add(button3);
                panel.add(button4);
                panel.add(button5);
                panel.add(button6);
                panel.add(button7);
                panel.add(button8);
                panel.add(button9);
                panel.add(button10);
                panel.add(button11);
                panel.add(button12);
                panel.add(button13);
                panel.add(button14);
                panel.add(button15);
                panel.add(button16);
        
        
                panel.add(t);
                panel.add(label);
                panel.add(t1);
                
                
                this.add(panel);
                this.setVisible(true);
        }
        private class MyListener implements ActionListener{
                public void actionPerformed(ActionEvent e){
                        if(e.getSource() == button1){
                                t.setText("취소");
                        }
                        else if(e.getSource() == button2){
                                operator += "1";
                                t.setText(operator);
                        }
                        else if(e.getSource() == button3){
                                operator += "2";
                                t.setText(operator);
                        }
                        else if(e.getSource() == button4){
                                operator += "3";
                                t.setText(operator);
                        }
                        else if(e.getSource() == button5){
                                operator += "4";
                                t.setText(operator);
                        }
                        if(e.getSource() == button6){
                                operator += "5";
                                t.setText(operator);
                        }
                        if(e.getSource() == button7){
                                operator += "6";
                                t.setText(operator);
                        }
                        if(e.getSource() == button8){
                                operator += "7";
                                t.setText(operator);
                        }
                        if(e.getSource() == button9){
                                operator += "8";
                                t.setText(operator);
                        }
                        if(e.getSource() == button10){
                                operator += "9";
                                t.setText(operator);
                        }
                        if(e.getSource() == button11){
                                operator += "0";
                                t.setText(operator);
                        }
                        if(e.getSource() == button12){
                                save = Integer.parseInt(operator);
                                operator = "";
                                t.setText("+");
                        }
                        if(e.getSource() == button13){
                                save = Integer.parseInt(operator);
                                operator = "";
                                t.setText("ㅡ");
                                }
                        if(e.getSource() == button14){
                                save = Integer.parseInt(operator);
                                operator = "";
                                t.setText("/");
                        }
                        if(e.getSource() == button15){
                                save = Integer.parseInt(operator);
                                operator = "";
                                t.setText("*");
                        }
                        if(e.getSource() == button16){
                                save = Integer.parseInt(operator);
                                operator = "";
                                t1.setText("");
                        }
                
                }
        }
}
public class Calculator{
        public static void main(String[] args){
                CalculatorTest c = new CalculatorTest();
        }
}
        
        
밑에서 어떤 친절하신 분이 잘 설명을 해주셨습니다.
제가 결과 값을 다시 반환 하고 싶은데..어떤 식이냐면
예를 들어 텍스트 필드 부분에 1+2를 하고
그 결과 값을 결과 텍스트 필드에 출력하고 싶습니다.
그리고 한가지 더....
예를 들어서 1+2를 하고 C버튼 즉 취소 버튼을 누르면 원래 계산기 라면 초기화가 되는데..,
어떻게 하면 초기 상태로 바꿀 수 있을 까요.

  Hit : 5880     Date : 2011/06/04 09:11



    
$Zero 이렇게 다 풀어드리면.. 공부에 도움 안되는데.. 전혀 갈피를 못잡으시는 거 같아 마지막으로 한번 더 코드 써드립니다..
제가 쓴 코드는 향후 변형에대해 전혀 신경쓰지 않은 코드입니다. (2개이상의 연산자를 입력할 경우, 나누기에서 소수점 표시 등등)
이런 부분들은 직접 생각하고 고쳐보세요 . 그래야 공부가 되요.. 안풀리면 책을 다시한번 보고 , 더보고 다시 풀어보고 그런식으로 하셔야합니다~~

계산기능 및 초기화기능 추가한거에요.


import java.awt.event.*;
import javax.swing.*;


class CalculatorTest extends JFrame{
private JButton button1, button2,button3,button4,button5;
private JButton button6,button7,button8,button9,button10;
private JButton button11,button12,button13,button14,button15;
private JButton button16;
private JTextField t,t1;
private String operator = new String("");
private int save = 0;
private int save2 = 0;
char oper;
public CalculatorTest(){
this.setSize(500,500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("계산기");
JPanel panel = new JPanel();
JLabel label = new JLabel("결과 = ");
t = new JTextField(40);
t1 = new JTextField(30);
button1 = new JButton("C");
button2 = new JButton("1");
button3 = new JButton("2");
button4 = new JButton("3");
button5 = new JButton("4");
button6 = new JButton("5");
button7 = new JButton("6");
button8 = new JButton("7");
button9 = new JButton("8");
button10 = new JButton("9");
button11 = new JButton("0");
button12 = new JButton("+");
button13 = new JButton("-");
button14 = new JButton("/");
button15 = new JButton("*");
button16 = new JButton("=");

button1.addActionListener(new MyListener());
button2.addActionListener(new MyListener());
button3.addActionListener(new MyListener());
button4.addActionListener(new MyListener());
button5.addActionListener(new MyListener());
button6.addActionListener(new MyListener());
button7.addActionListener(new MyListener());
button8.addActionListener(new MyListener());
button9.addActionListener(new MyListener());
button10.addActionListener(new MyListener());
button11.addActionListener(new MyListener());
button12.addActionListener(new MyListener());
button13.addActionListener(new MyListener());
button14.addActionListener(new MyListener());
button15.addActionListener(new MyListener());
button16.addActionListener(new MyListener());

panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
panel.add(button5);
panel.add(button6);
panel.add(button7);
panel.add(button8);
panel.add(button9);
panel.add(button10);
panel.add(button11);
panel.add(button12);
panel.add(button13);
panel.add(button14);
panel.add(button15);
panel.add(button16);


panel.add(t);
panel.add(label);
panel.add(t1);


this.add(panel);
this.setVisible(true);
}
private class MyListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource() == button1){
save = 0;
operator = "";
save2 = 0;
t.setText("취소");
t1.setText("");
}
else if(e.getSource() == button2){

operator += "1";
if(save != 0)
save2 = Integer.parseInt(operator);
t.setText(operator);
}
else if(e.getSource() == button3){

operator += "2";
if(save != 0)
save2 = Integer.parseInt(operator);
t.setText(operator);
}
else if(e.getSource() == button4){

operator += "3";
if(save != 0)
save2 = Integer.parseInt(operator);
t.setText(operator);
}
else if(e.getSource() == button5){

operator += "4";
if(save != 0)
save2 = Integer.parseInt(operator);
t.setText(operator);
}
if(e.getSource() == button6){
operator += "5";
if(save != 0)
save2 = Integer.parseInt(operator);
t.setText(operator);
}
if(e.getSource() == button7){
operator += "6";
if(save != 0)
save2 = Integer.parseInt(operator);
t.setText(operator);
}
if(e.getSource() == button8){
operator += "7";
if(save != 0)
save2 = Integer.parseInt(operator);
t.setText(operator);
}
if(e.getSource() == button9){
operator += "8";
if(save != 0)
save2 = Integer.parseInt(operator);
t.setText(operator);
}
if(e.getSource() == button10){
operator += "9";
if(save != 0)
save2 = Integer.parseInt(operator);
t.setText(operator);
}
if(e.getSource() == button11){
operator += "0";
if(save != 0)
save2 = Integer.parseInt(operator);
t.setText(operator);
}
if(e.getSource() == button12){

save = Integer.parseInt(operator);

operator = "";
oper = '+';
t.setText("+");
}
if(e.getSource() == button13){


save = Integer.parseInt(operator);


operator = "";
oper = '-';
t.setText("ㅡ");
}
if(e.getSource() == button14){
save = Integer.parseInt(operator);

operator = "";
oper = '/';
t.setText("/");
}
if(e.getSource() == button15){

save = Integer.parseInt(operator);

operator = "";
oper = '*';
t.setText("*");
}
if(e.getSource() == button16){
switch(oper){
case '+' :
t1.setText("" + (save + save2));
break;
case '-' :
t1.setText("" + (save - save2));
break;
case '/' :
t1.setText("" + (save / save2));
break;
case '*' :
t1.setText("" + (save * save2));
break;


}


}

}
}
}
public class Calculator{
public static void main(String[] args){
CalculatorTest c = new CalculatorTest();
}
}
2011/06/05