import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Kalkulator
{
public static void main(String[] args)
{
// Kan ta med dette for likt utseende p? tvers av operativ system
// try
// { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); }
// catch (Exception e)
// { System.exit(-1); }
JFrame vindu = new JFrame("Kalkulator");
vindu.setLayout(new BorderLayout());
JTextField tekstfelt = new JTextField();
tekstfelt.setEditable(false);
tekstfelt.setHorizontalAlignment(JTextField.RIGHT);
vindu.add(tekstfelt, BorderLayout.NORTH);
JPanel knappepanel = new JPanel();
knappepanel.setLayout(new GridLayout(5, 3));
class Knappetrykk implements ActionListener
{
int forsteTall = 0;
int andreTall = 0;
int resultat = 0;
char operator = ' ';
public void actionPerformed(ActionEvent e)
{
String tegn = e.getActionCommand();
if (tegn.equals("+"))
{
forsteTall = Integer.parseInt(tekstfelt.getText());
operator = '+';
tekstfelt.setText("");
}
else if (tegn.equals("-"))
{
forsteTall = Integer.parseInt(tekstfelt.getText());
operator = '-';
tekstfelt.setText("");
}
else if (tegn.equals("*"))
{
forsteTall = Integer.parseInt(tekstfelt.getText());
operator = '*';
tekstfelt.setText("");
}
else if (tegn.equals("/"))
{
forsteTall = Integer.parseInt(tekstfelt.getText());
operator = '/';
tekstfelt.setText("");
}
else if (tegn.equals("="))
{
andreTall = Integer.parseInt(tekstfelt.getText());
switch (operator) {
case '+':
resultat = forsteTall + andreTall;
break;
case '-':
resultat = forsteTall - andreTall;
break;
case '*':
resultat = forsteTall * andreTall;
break;
case '/':
resultat = forsteTall / andreTall;
break;
}
tekstfelt.setText("" + resultat);
}
else if (tegn.equals("C"))
{
tekstfelt.setText("");
forsteTall = 0;
andreTall = 0;
resultat = 0;
}
else
{
tekstfelt.setText(tegn);
}
}
}
ActionListener knappetrykk = new Knappetrykk();
for (int i = 1; i <= 9; i ++)
{
JButton tallknapp = new JButton("" + i);
tallknapp.addActionListener(knappetrykk);
knappepanel.add(tallknapp);
}
JButton plussknapp = new JButton("+");
plussknapp.addActionListener(knappetrykk);
knappepanel.add(plussknapp);
JButton minusknapp = new JButton("-");
minusknapp.addActionListener(knappetrykk);
knappepanel.add(minusknapp);
JButton fjernknapp = new JButton("C");
fjernknapp.addActionListener(knappetrykk);
knappepanel.add(fjernknapp);
JButton gangeknapp = new JButton("*");
gangeknapp.addActionListener(knappetrykk);
knappepanel.add(gangeknapp);
JButton deleknapp = new JButton("/");
deleknapp.addActionListener(knappetrykk);
knappepanel.add(deleknapp);
JButton likknapp = new JButton("=");
likknapp.addActionListener(knappetrykk);
knappepanel.add(likknapp);
vindu.add(knappepanel, BorderLayout.CENTER);
vindu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
vindu.setLocationRelativeTo(null);
vindu.setSize(500, 600);
vindu.setVisible(true);
}
}