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); } }