rendered paste body/*
* 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);
}
}