상세 컨텐츠

본문 제목

자바 awt를 이용한 계산기...

관리X 과거글

by 까먹기전에 2015. 1. 6. 20:23

본문

반응형
import java.awt.Button;
import java.awt.Choice;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

class Myframe extends Frame {

Button b1;                                   //변수선언
int a, b;
Choice ColorChooser;
TextField t1, t2, t3;
addActionListener aa;

Myframe() {                             //변수 초기화

t1 = new TextField(4);
t2 = new TextField(4);
ColorChooser = new Choice();
ColorChooser.add("x");
ColorChooser.add("+");
ColorChooser.add("-");
b1 = new Button("결과보기");
b1.setSize(400, 400);
t3 = new TextField(20);

}

void addComponent() {            //프레임에 버튼과 , 텍스트필드 , 초이스를 집어넣는다.
add(t1);
add(ColorChooser);
add(t2);
add(b1);
add(t3);
}

void registerEvent() {              //이벤트를 등록한다. 여기선 버튼1번만 한다.
aa = new addActionListener();
b1.addActionListener(new addActionListener());

}
}

class addActionListener implements ActionListener {

int c;
TextField t1, t2, t3;
Choice cc;

public void actionPerformed(ActionEvent e) {

Button b1 = (Button) e.getSource();
Frame f = (Frame) b1.getParent();
Component[] cp = f.getComponents();
t1 = (TextField) cp[0];
t2 = (TextField) cp[2];
cc = (Choice) cp[1];
t3 = (TextField) cp[4];
System.out.println("버튼클릭성공");
try {                                                      //초이스의 선택값을 받아와서 계산해서 텍스트3에 setText 한다.
if (cc.getSelectedItem() == "x") {
t3.setText(Integer.parseInt(t1.getText())
* Integer.parseInt(t2.getText()) + "");

}
if (cc.getSelectedItem() == "+") {
t3.setText(Integer.parseInt(t1.getText())
+ Integer.parseInt(t2.getText()) + "");

}
if ((cc.getSelectedItem() == "-")) {
t3.setText((Integer.parseInt(t1.getText()) - Integer
.parseInt(t2.getText())) + "");

}
}

catch (NumberFormatException e1) {
t3.setText("숫자 입력 왜 안해요?");
}

}
}

public class framet {
public static void main(String[] args) {
Myframe f = new Myframe();
f.setVisible(true);
f.setBounds(600, 600, 500, 500);
f.setLayout(new FlowLayout());
f.addComponent();
f.registerEvent();
}
}
 


관련글 더보기