import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Kalkulator { JFrame ramme; JPanel ovrePanel; JPanel nedrePanel; JLabel tall; JButton[] numKnapper; JButton[] spesKnapper; KnappeLytter lytter; int mellomlager; public Kalkulator() { // Oppretter ramme og paneler ramme = new JFrame("KALKULATOR"); ovrePanel = new JPanel(); nedrePanel = new JPanel(); // Ordner ovre panel tall = new JLabel(); ovrePanel.add(tall); // Lager knappe-arrays numKnapper = new JButton[9]; spesKnapper = new JButton[3]; lytter = new KnappeLytter(); for(int i = 0; i < numKnapper.length; i++) { numKnapper[i] = new JButton("" + (i+1)); numKnapper[i].addActionListener(lytter); } for(int i = 0; i < spesKnapper.length; i++) { spesKnapper[i] = new JButton(); spesKnapper[i].addActionListener(lytter); } spesKnapper[0].setText("+"); spesKnapper[1].setText("="); spesKnapper[2].setText("0"); // Legge knapper paa nedre panel nedrePanel.setLayout(new GridLayout(3, 4)); int spesTeller = 0; int tallTeller = 0; for(int i = 0; i < 12; i++) { if((i+1) % 4 == 0) { nedrePanel.add(spesKnapper[spesTeller++]); } else { nedrePanel.add(numKnapper[tallTeller++]); } } // Setter paneler paa ramme ramme.setLayout(new BorderLayout()); ramme.add(ovrePanel, BorderLayout.NORTH); ramme.add(nedrePanel, BorderLayout.SOUTH); // Standard ramme-operasjoner ramme.setSize(300, 300); ramme.setVisible(true); ramme.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private class KnappeLytter implements ActionListener { public void actionPerformed(ActionEvent e) { for(int i = 0; i < numKnapper.length; i++) { if(e.getSource() == numKnapper[i]) { tall.setText(tall.getText() + (i+1)); } } if(e.getSource() == spesKnapper[0]) { mellomlager = Integer.parseInt(tall.getText()); tall.setText(""); } else if (e.getSource() == spesKnapper[1]) { int resultat = mellomlager + Integer.parseInt(tall.getText()); tall.setText(resultat + ""); } else if (e.getSource() == spesKnapper[2]) { tall.setText(tall.getText() + 0); } } } }