package java6799.calc;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TaskCalculator6799 extends JFrame {
private JTextField txtResult;
private JButton btnClear;
private JPanel p1, p2;
public TaskCalculator6799() {
super(" ");
this.setSize(230, 230);
this.setLocation(200, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initUI6799();
this.setVisible(true);
this.setResizable(false);
}
private void initUI6799() {
p1 = new JPanel();
btnClear = new JButton(" ");
txtResult = new JTextField(13);
p1.add(txtResult);
p1.add(btnClear);
this.add(p1, BorderLayout.NORTH);
p2 = new JPanel(new GridLayout(4, 4));
String name = "789+456-123*0.=/";
for (int i = 0; i < name.length(); i++) {
JButton jb = new JButton("" + name.charAt(i));
jb.addActionListener(new ButtonClick6799());
p2.add(jb);
}
this.add(p2, BorderLayout.CENTER);
btnClear.addMouseListener(new myMouseAdapter());
}
public static void main(String[] args) {
new TaskCalculator6799();
}
class ButtonClick6799 implements ActionListener {
double number1, number2, result;
String number = null, operator = "+";
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().matches("[0-9\\.]")) {
number = txtResult.getText() + e.getActionCommand();
txtResult.setText(number);
}
else if (e.getActionCommand().matches("[\\+\\-\\*/]")) {
number1 = Double.valueOf(txtResult.getText());
txtResult.setText(txtResult.getText() + e.getActionCommand());
operator = e.getActionCommand();
}
else if (e.getActionCommand().matches("[=]")) {
String[] splited = txtResult.getText().split("[\\+\\-\\*/]");
txtResult.setText(txtResult.getText() + e.getActionCommand());
number1 = Double.valueOf(splited[0]);
number2 = Double.valueOf(splited[1]);
switch (operator) {
case "+":
result = number1 + number2;
break;
case "-":
result = number1 - number2;
break;
case "*":
result = number1 * number2;
break;
case "/":
result = number1 / number2;
break;
}
txtResult.setText(txtResult.getText() + Double.toString(result));
}
}
}
class myMouseAdapter extends MouseAdapter{
@Override
public void mouseClicked(MouseEvent e) {
txtResult.setText("");
}
}
}