/*
 * "Grundkurs Programmieren in Java (7. Auflage, 2014)"
 * 2003-2014, Carl Hanser Verlag
 * Loesungsvorschlag zu Aufgabe 13.1 (Version 2.0)
 * (c) 2003-2014 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger
 *
 */

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;

public class DatumFrame extends JFrame {
  private Container c;
  private JLabel             beschriftung, datumsAnzeige;
  private JComboBox          formatAuswahl;
  private Date               datum;
  private static final SimpleDateFormat   
    lang = new SimpleDateFormat("EEEE', 'd'. 'MMMM yyyy"),
    mittel = new SimpleDateFormat("EEEE', 'd'. 'MMMM"),
    kurz = new SimpleDateFormat("d '. ' MMMM");
  
  public DatumFrame() {
    setFont( new Font( "Helvetica", Font.BOLD, 28) );
    beschriftung = new JLabel("Heutiges Datum:",JLabel.CENTER);
   
    datum = new Date();
    datumsAnzeige = new JLabel(lang.format(datum), JLabel.CENTER);
    
    formatAuswahl = new JComboBox();
    formatAuswahl.addItem( "Alles anzeigen" );
    formatAuswahl.addItem( "Wochentag, Tag und Monat" );
    formatAuswahl.addItem( "Tag und Monat" );
    
    formatAuswahl.addItemListener(new AnzeigeListener());
    
    c = getContentPane();
    c.add(beschriftung,BorderLayout.NORTH);
    c.add(datumsAnzeige,BorderLayout.CENTER);
    c.add(formatAuswahl,BorderLayout.SOUTH);
  }
  
  // innere Klasse
  class AnzeigeListener implements ItemListener {
    public void itemStateChanged(ItemEvent ie) {
      datum = new Date();
      if (formatAuswahl.getSelectedIndex() == 0)
        datumsAnzeige.setText(lang.format(datum));
      else if (formatAuswahl.getSelectedIndex() == 1)
        datumsAnzeige.setText(mittel.format(datum));
      else
        datumsAnzeige.setText(kurz.format(datum));
    }    
  }
  
  // main-Methode
  public static void main(String[] args) {
    DatumFrame Datumfenster = new DatumFrame();
    Datumfenster.setTitle("DatumFrame");
    Datumfenster.setSize(190,100);
    Datumfenster.setVisible(true);
    Datumfenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}
