/* * Oppgave 1B, delprøve 1 februar 2006 */ import javax.swing.*; import java.awt.*; import java.awt.event.*; class GUI extends JFrame { private JButton[][] plasser; private int køplass = 0; public GUI(String tittel, int antRekker, int antKolonner) { setTitle(tittel); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Knappelytter lytter = new Knappelytter(); setLayout(new GridLayout(antRekker, antKolonner, 5, 5)); plasser = new JButton[antRekker][antKolonner]; for (int rekkenr = 0; rekkenr < antRekker; rekkenr++) { for (int kolonnenr = 0; kolonnenr < antKolonner; kolonnenr++) { /* Første innskudd i koden starter her ... */ plasser[rekkenr][kolonnenr] = new JButton(" "); plasser[rekkenr][kolonnenr].addActionListener(lytter); plasser[rekkenr][kolonnenr].setBackground(Color.white); add(plasser[rekkenr][kolonnenr]); /* ... og slutter her */ } } pack(); } class Knappelytter implements ActionListener { public void actionPerformed(ActionEvent hendelse) { JButton knapp = (JButton) hendelse.getSource(); /* Andre innskudd i koden starter her ... */ if (knapp.getBackground().equals(Color.white)) { knapp.setBackground(Color.yellow); køplass++; knapp.setText("" + køplass); } else { int plassTrykket = Integer.parseInt(knapp.getText()); if (plassTrykket > 1) JOptionPane.showMessageDialog(null, "Denne er ikke først i køen"); else { flyttAlleEnPlassFram(); køplass--; knapp.setBackground(Color.white); knapp.setText(""); } } } private void flyttAlleEnPlassFram() { for (JButton[] enRad : plasser) { for (JButton enPlass : enRad) { if (enPlass.getBackground().equals(Color.yellow)) { int plassKø = Integer.parseInt(enPlass.getText()); plassKø--; enPlass.setText("" + plassKø); } } } } /* ... og slutter her */ } } class Oppgave1B { public static void main(String[] args) { GUI klasserom = new GUI("PC-labb", 3, 4); klasserom.setVisible(true); } }