Witam, od dłuższego czasu próbuje stworzyć kalkulator na wzór kalkulatora windowsowego. Schody zaczynają się, gdy operatory (+-*/=) mają odegrać swoją rolę. Prosiłbym o jakieś rady ;)
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class kalk extends JFrame implements ActionListener {
JButton B1, B2, B3, B4, B5, B6, B7, B8, B9, Ba, Bb, Bc, Bd, Be;
JTextField TextField;
public static int wynik;
String wynik2;
public kalk(){
setSize(350,350);
setTitle("MegaProg");
B1 = new JButton();
setLayout(null);
B1.setBounds(50, 70, 45, 45);
B1.setText("1");
add(B1);
B1.addActionListener(this);
B2 = new JButton();
setLayout(null);
B2.setBounds(90, 70, 45, 45);
B2.setText("2");
add(B2);
B2.addActionListener(this);
B3 = new JButton();
setLayout(null);
B3.setBounds(130, 70, 45, 45);
B3.setText("3");
add(B3);
B3.addActionListener(this);
B4 = new JButton();
setLayout(null);
B4.setBounds(50, 120, 45, 45);
B4.setText("4");
add(B4);
B4.addActionListener(this);
B5 = new JButton();
setLayout(null);
B5.setBounds(90, 120, 45, 45);
B5.setText("5");
add(B5);
B5.addActionListener(this);
B6 = new JButton();
setLayout(null);
B6.setBounds(130, 120, 45, 45);
B6.setText("6");
add(B6);
B6.addActionListener(this);
B7 = new JButton();
setLayout(null);
B7.setBounds(50, 170, 45, 45);
B7.setText("7");
add(B7);
B7.addActionListener(this);
B8 = new JButton();
setLayout(null);
B8.setBounds(90, 170, 45, 45);
B8.setText("8");
add(B8);
B8.addActionListener(this);
B9 = new JButton();
setLayout(null);
B9.setBounds(130, 170, 45, 45);
B9.setText("9");
add(B9);
B9.addActionListener(this);
Ba = new JButton();
setLayout(null);
Ba.setBounds(200, 70, 45, 45);
Ba.setText("+");
add(Ba);
Ba.addActionListener(this);
Bb = new JButton();
setLayout(null);
Bb.setBounds(250, 70, 45, 45);
Bb.setText("-");
add(Bb);
Bb.addActionListener(this);
Bc = new JButton();
setLayout(null);
Bc.setBounds(200, 120, 45, 45);
Bc.setText("*");
add(Bc);
Bc.addActionListener(this);
Bd = new JButton();
setLayout(null);
Bd.setBounds(200, 170, 45, 45);
Bd.setText("/");
add(Bd);
Bd.addActionListener(this);
Be = new JButton();
setLayout(null);
Be.setBounds(200, 220, 45, 45);
Be.setText("=");
add(Be);
Be.addActionListener(this);
TextField = new JTextField("");
TextField.setBounds(50, 20, 245, 40);
add(TextField);
}
@Override
public void actionPerformed(ActionEvent e) {
//Bb.addActionListener(this);
//Bc.addActionListener(this);
//Bd.addActionListener(this);
//Be.addActionListener(this);
Object źródło = e.getSource();
if(źródło==B1){
TextField.setText(TextField.getText()+"1");
}
else if(źródło==B2){
TextField.setText(TextField.getText()+"2");
}
else if(źródło==B3){
TextField.setText(TextField.getText()+"3");
}
else if(źródło==B4){
TextField.setText(TextField.getText()+"4");
}
else if(źródło==B5){
TextField.setText(TextField.getText()+"5");
}
else if(źródło==B6){
TextField.setText(TextField.getText()+"6");
}
else if(źródło==B7){
TextField.setText(TextField.getText()+"7");
}
else if(źródło==B8){
TextField.setText(TextField.getText()+"8");
}
else if(źródło==B9){
TextField.setText(TextField.getText()+"9");
}
else if(źródło==Ba){
TextField.setText(TextField.getText()+"+");
wynik += Integer.toString(TextField.getText());
wynik2 += wynik;
}
else if(źródło==Bb){
TextField.setText(TextField.getText()+"-");
}
else if(źródło==Bc){
TextField.setText(TextField.getText()+"*");
}
else if(źródło==Bd){
TextField.setText(TextField.getText()+"/");
}
else if(źródło==Be){
TextField.setText(TextField.getText(wynik2));
}
}
public static void main(String[] args){
kalk celsjusz1 = new kalk();
celsjusz1.setVisible(true);
}
}