Fråga ang. ActionListener
Jag sitter och fnular på en liten enkel miniräknare, främst för att lära mig hur ActionListener fungerar... Som det är nu så har jag ju lagt in en massa if-satser i actionPerformed och fått additionen att funka, men det känns som att jag låst likaMed-knappen till just additionen...
För att få in de tre övriga räknesätten så känner jag att det nog inte håller att koda så här. Skulle vara ytterst tacksam om någon kunde kolla på koden och ge lite åsikter.
Finns det t.ex. nåt smidigt sätt att få in de övriga räknesätten på samma sätt som additionen i den sista if-satsen som är kopplat till likaMed-knappen? Det känns som att jag har krånglat till det för mig ordentligt här...
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Miniräknare extends JFrame implements ActionListener
{
private double input1 = 0.0;
private double input2 = 0.0;
private double output = 0.0;
private JTextField textfält = new JTextField();
private JButton knappAdd = new JButton("+");
private JButton knappSub = new JButton("-");
private JButton knappMul = new JButton("*");
private JButton knappDiv = new JButton("/");
private JButton likaMed = new JButton("=");
private JButton knapp1 = new JButton("1");
private JButton knapp2 = new JButton("2");
private JButton knapp3 = new JButton("3");
private JButton knapp4 = new JButton("4");
private JButton knapp5 = new JButton("5");
private JButton knapp6 = new JButton("6");
private JButton knapp7 = new JButton("7");
private JButton knapp8 = new JButton("8");
private JButton knapp9 = new JButton("9");
private JButton knapp0 = new JButton("0");
public Miniräknare()
{
setTitle("Kalkylator");
Container innehåll = getContentPane();
innehåll.setLayout(new FlowLayout());
innehåll.add(textfält);
innehåll.add(knappAdd);
innehåll.add(knappSub);
innehåll.add(knappMul);
innehåll.add(knappDiv);
innehåll.add(likaMed);
innehåll.add(knapp1);
innehåll.add(knapp2);
innehåll.add(knapp3);
innehåll.add(knapp4);
innehåll.add(knapp5);
innehåll.add(knapp6);
innehåll.add(knapp7);
innehåll.add(knapp8);
innehåll.add(knapp9);
innehåll.add(knapp0);
textfält.setPreferredSize(new Dimension(180, 30));
knappAdd.addActionListener(this);
knappSub.addActionListener(this);
knappMul.addActionListener(this);
knappDiv.addActionListener(this);
likaMed.addActionListener(this);
knapp1.addActionListener(this);
knapp2.addActionListener(this);
knapp3.addActionListener(this);
knapp4.addActionListener(this);
knapp5.addActionListener(this);
knapp6.addActionListener(this);
knapp7.addActionListener(this);
knapp8.addActionListener(this);
knapp9.addActionListener(this);
knapp0.addActionListener(this);
setSize(210, 200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()== knapp1){
textfält.setText(textfält.getText() + 1);
}
if(e.getSource()== knapp2){
textfält.setText(textfält.getText() + 2);
}
if(e.getSource()== knapp3){
textfält.setText(textfält.getText() + 3);
}
if(e.getSource()== knapp4){
textfält.setText(textfält.getText() + 4);
}
if(e.getSource()== knapp5){
textfält.setText(textfält.getText() + 5);
}
if(e.getSource()== knapp6){
textfält.setText(textfält.getText() + 6);
}
if(e.getSource()== knapp7){
textfält.setText(textfält.getText() + 7);
}
if(e.getSource()== knapp8){
textfält.setText(textfält.getText() + 8);
}
if(e.getSource()== knapp9){
textfält.setText(textfält.getText() + 9);
}
if(e.getSource()== knapp0){
textfält.setText(textfält.getText() + 0);
}
if(e.getSource()== knappAdd){
input1 = Double.parseDouble(textfält.getText());
textfält.setText("");
}
if(e.getSource()== knappSub){
input1 = Double.parseDouble(textfält.getText());
textfält.setText("");
}
if(e.getSource()== knappMul){
input1 = Double.parseDouble(textfält.getText());
textfält.setText("");
}
if(e.getSource()== knappDiv){
input1 = Double.parseDouble(textfält.getText());
textfält.setText("");
}
if(e.getSource()== likaMed){
input2 = Double.parseDouble(textfält.getText());
output = input1 + input2;
textfält.setText(String.valueOf(output));
}
}
public static void main(String[] argument)
{
new Miniräknare();
}
}