Ejemplo n.º 1
0
  /**
   * Setzt die Anzahl der Plätze, die in diesem Platzplan zur Auswahl angeboten werden. Achtung,
   * nach dem Aufruf dieser Methode werden zunächst alle Plätze als frei angezeigt!
   *
   * @param anzahlReihen die Anzahl der Reihen
   * @param anzahlSitzeProReihe die Anzahl der Plätze pro Reihe
   * @require anzahlReihen >= 0
   * @require anzahlSitzeProReihe >= 0
   */
  public void setAnzahlPlaetze(int anzahlReihen, int anzahlSitzeProReihe) {
    assert anzahlReihen >= 0 : "Vorbedingung verletzt: anzahlReihen >= 0";
    assert anzahlSitzeProReihe >= 0 : "Vorbedingung verletzt: anzahlSitzeProReihe >= 0";

    // Alle vorhandenen Buttons etc. entfernen
    removeAll();

    // Neue Buttons für Plätze erstellen
    _buttons = new JPlatzButton[anzahlReihen][anzahlSitzeProReihe];
    for (int reihe = 0; reihe < anzahlReihen; reihe++) {
      JLabel label = new JLabel("Reihe " + (reihe + 1) + ":");
      imGitterEinfuegen(label, 0, reihe);
      for (int sitz = 0; sitz < anzahlSitzeProReihe; sitz++) {
        JPlatzButton button = new JPlatzButton(Platz.get(reihe, sitz));
        button.setMinimumSize(PLATZBUTTON_GROESSE);
        button.setPreferredSize(PLATZBUTTON_GROESSE);
        imGitterEinfuegen(button, sitz + 1, reihe);
        button.addActionListener(_buttonListener);
        _buttons[reihe][sitz] = button;
      }
    }
    revalidate();
    repaint();

    // Nach der Änderung ist kein Platz ausgewählt
    _ausgewaehltePlaetze.clear();
    informiereSelectionListener(_ausgewaehltePlaetze);
  }