import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Kalkulator2 { private static JLabel tekst = new JLabel("0"); private static int knappStr = 140; private static String forrigeTall = ""; private static String operasjon = "+"; public static void main(String[] args) { JFrame vindu = new JFrame("Kalkulator"); vindu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); vindu.setResizable(false); JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); vindu.add(panel); panel.add(tekst); tekst.setPreferredSize(new Dimension(500, 100)); tekst.setForeground(Color.BLACK); tekst.setOpaque(true); tekst.setFont(new Font("times new roman", Font.ITALIC,40)); tekst.setAlignmentX(Component.CENTER_ALIGNMENT); tekst.setPreferredSize(new Dimension(knappStr*3, knappStr)); JPanel knapper = new JPanel(); panel.add(knapper); knapper.setLayout(new GridLayout(5,3)); lagTallKnapper(knapper); lagOperasjonsKnapper(knapper); vindu.pack(); vindu.setVisible(true); } public static void lagTallKnapper(JPanel knapper){ class TallKnapp extends JButton { public TallKnapp(String tall){ super(tall); setPreferredSize(new Dimension(knappStr,knappStr)); setFont(new Font("times new roman" ,Font.CENTER_BASELINE, 40)); addActionListener(new TallAction()); } class TallAction implements ActionListener { @Override public void actionPerformed(ActionEvent e){ String tekstKnapp = getText(); tekst.setText(tekstKnapp); } } } int teller = 1; for(int i = 0; i < 3; i++){ for(int j = 0; j < 3; j++){ knapper.add(new TallKnapp(""+teller++)); } } knapper.add(new TallKnapp("0")); } public static void lagOperasjonsKnapper(JPanel knapper){ class OperasjonsKnapp extends JButton { public OperasjonsKnapp(String operasjon){ super(operasjon); if (operasjon.equals("=")){ setBackground(Color.RED); } else { setBackground(Color.ORANGE); } setForeground(Color.BLACK); setPreferredSize(new Dimension(knappStr,knappStr)); setFont(new Font("times new roman" ,Font.BOLD, 40)); addActionListener(new OperasjonAction()); } class OperasjonAction implements ActionListener { @Override public void actionPerformed(ActionEvent e){ if(getText().equals("=")){ if(forrigeTall.equals("")) return; Double tall1 = 0.0, tall2 = 0.0; try{ tall1 = Double.parseDouble(forrigeTall); tall2 = Double.parseDouble(tekst.getText()); }catch(Exception exception){ return; } Double resultat = 0.0; if(operasjon.equals("+")){ resultat = tall1 + tall2; }else if(operasjon.equals("-")){ resultat = tall1 - tall2; }else if(operasjon.equals("/")){ resultat = tall1 / tall2; }else if(operasjon.equals("*")){ resultat = tall1 * tall2; } forrigeTall = ""; tekst.setText(Double.toString(resultat)); }else{ System.out.println("lol"); operasjon = getText(); forrigeTall = tekst.getText(); tekst.setText("0"); } } } } knapper.add(new OperasjonsKnapp("+")); knapper.add(new OperasjonsKnapp("-")); knapper.add(new OperasjonsKnapp("=")); knapper.add(new OperasjonsKnapp("*")); knapper.add(new OperasjonsKnapp("/")); } }