import java.awt.*; import java.awt.event.*; import javax.swing.*; class Uke15 { static int xDimensjon = 200; static int yDimensjon = 100; static JLabel teller = new JLabel("0", SwingConstants.CENTER); // opprett en del knapper // i et MxN rutenett, i dette tilfellet 3 x 5 // ha en felles teller som teller hvor mange ganger knappene har blitt trykket public static void main(String[] args) { JFrame vindu = new JFrame("Uke 15 GUI program"); vindu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); vindu.add(panel); //panel.setLayout(new GridLayout(5, 1)); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); JPanel tellerSubpanel = new JPanel(); tellerSubpanel.setPreferredSize(new Dimension(xDimensjon, yDimensjon)); tellerSubpanel.setBorder(BorderFactory.createLineBorder(Color.BLACK)); teller.setFont(new Font("times new roman", Font.CENTER_BASELINE, 60)); tellerSubpanel.add(teller); panel.add(tellerSubpanel); int knappIndeks = 0; for (int i = 0; i < 3; i++) { JPanel subpanel = new JPanel(); subpanel.setLayout(new GridLayout(1, 5)); for (int j = 0; j < 5; j++) { TellerKnapp knapp = new TellerKnapp("knapp " + knappIndeks); subpanel.add(knapp); knappIndeks++; } panel.add(subpanel); } vindu.pack(); vindu.setVisible(true); } static class TellerKnapp extends JButton { public TellerKnapp(String tekst) { super(tekst); this.setBackground(Color.BLACK); this.setForeground(Color.YELLOW); this.setPreferredSize(new Dimension(xDimensjon, yDimensjon)); this.setFont(new Font( "times new roman" , Font.BOLD , 40 )); this.initGUI(); } class OekTeller implements ActionListener { @Override public void actionPerformed(ActionEvent e) { // hent teller sin tekst // ?k med 1 // oppdater teller sin tekst int tellerVerdi = Integer.parseInt(teller.getText()); teller.setText( String.valueOf(tellerVerdi + 1) ); } } public void initGUI() { this.addActionListener(new OekTeller()); } } } //