JAVA GUI 사칙연산 계산기

import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ButtonActionListener implements ActionListener {
private int intFlag = 0;
private String strAct = null;
private TextField display = null;
private String strOP = null;
private String strTmp = null;
public ButtonActionListener (TextField display) {
this.display = display;
}
public void actionPerformed(ActionEvent arg0) {
strAct = arg0.getActionCommand();
if (strAct.equals("/") || strAct.equals("*") || strAct.equals("-") || strAct.equals("+")){
strTmp =display.getText();
strOP = strAct;
intFlag = 1;
}
else if (strAct.equals("=")){
if (intFlag == 2){
long f = Long.parseLong(strTmp);
long e = Long.parseLong(display.getText());
long result;
if(strOP.equals("+")){
result = f + e;
display.setText(""+ result);
}
else if (strOP.equals("*")){
result = f * e;
display.setText(""+ result);
}
else if (strOP.equals("/")){
if(e ==0)
display.setText("Error:Divide by 0");
else{
result = f / e;
display.setText(""+ result);
}
}
intFlag = 0;
}
}
else if (strAct.equals("C")){
intFlag = 0;
display.setText("0");
}
else{
if(intFlag == 1){
intFlag = 2;
display.setText("0");
}
if(display.getText().equals("0")){
display.setText(strAct);
}
else{
display.setText(display.getText() + strAct);
}
}
}
}
import java.awt.Button;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionListener;
public class ButtonPane extends Panel {
private TextField display = null;
private Button[] butt = null;
private final String[] buttName = { "7" , "8", "9" , "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", "C", "=", "+"};
public ButtonPane (TextField display){
this.display = display;
setLayout ( new GridLayout(4,4));
ActionListener act1 = new ButtonActionListener (display);
butt = new Button[buttName.length];
for(int i = 0; i < butt.length; i++){
butt[i] = new Button(buttName[i]);
butt[i].addActionListener(act1);
add (butt[i]);
}
}
}
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.*;
public class Calculator implements WindowListener {
private Frame mainFrame = null;
private TextField display = null;
private Panel displayPanel = null;
private ButtonPane buttonPane = null;
private String strTitle = null;
public Calculator (String strTitle){
this.strTitle = strTitle;
}
public void init(){
mainFrame = new Frame (strTitle);
mainFrame.setLayout(new BorderLayout());
mainFrame.setBounds(10,10, 250, 250);
mainFrame.addWindowListener(this);
display = new TextField (30);
display.setText("0");
display.setEditable(false);
displayPanel = new Panel();
displayPanel.setBounds(0, 30, 250, 40);
displayPanel.add(display);
buttonPane = new ButtonPane (display);
buttonPane.setBounds(0, 70, 250, 180);
mainFrame.add("North", displayPanel);
mainFrame.add("Center", buttonPane);
mainFrame.setVisible(true);
}
@Override
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
System.out.println("dfsdf");
mainFrame.setVisible(false);
mainFrame.dispose();
System.exit(0);
}
@Override
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
System.out.println("dfljsdflksdf");
}
@Override
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public static void main (String[] args){
Calculator calculator = new Calculator ("dsfsdf");
calculator.init();
}
}