import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Fenster extends JFrame implements ActionListener
{
Kalender kal = new Kalender();
KalenderFunktionen kalle = new KalenderFunktionen();
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
String kalenderstring = "";
private JTextArea textarea;
public JComboBox cbox;
public JComboBox cbox2;
Object[] jahre = {2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008};
Object[] monate = kalle.monatsname;
private static final long serialVersionUID = 1L;
/**
* Der x-te Monat eines Jahres.
*/
private int monatsanzahl = 0;
/**
* Das Jahr
*/
private int jahresanzahl = 0;
/**
* Die Anzahl der Tage eines Monats.
*/
private int tagesanzahl;
public int getMonatsanzahl()
{
return monatsanzahl;
}
/**
* @param monatsanzahl
* Der x-te Monat eines Jahres.
*/
public void setMonatsanzahl(int monatsanzahl)
{
this.monatsanzahl = monatsanzahl;
}
/**
* Der x-te Monat eines Jahres wird erfasst.
*/
public void erfasseMonatsanzahl()
{
monatsanzahl = cbox.getSelectedIndex();
}
/**
* @return
* Die Gesamtanzahl der Tage eines Monats.
*/
public int getTagesanzahl()
{
return tagesanzahl;
}
/**
* @param tagesanzahl
* Die Gesamtanzahl der Tage eines Monats.
*/
public void setTagesanzahl(int tagesanzahl)
{
this.tagesanzahl = tagesanzahl;
}
/**
* Die Gesamtanzahl der Tage eines Monats wird zurückgegeben.
* @param monatsnummer
* Der x-te Monat eines Jahres.
* @return
* Die Gesamtanzahl der Tage eines Monats.
*/
public int lieferetagesanzahl(int monatsnummer)
{
if (kalle.istSchaltjahr(jahresanzahl) == true && monatsnummer ==2 )
{
tagesanzahl = 29;
}
else
{
tagesanzahl = kalle.tage_im_monat(monatsnummer, jahresanzahl);
}
return tagesanzahl;
}
/**
* @return
* Das Jahr wird zurückgegeben
*/
public int getJahresanzahl()
{
return jahresanzahl;
}
/**
* @param jahresanzahl
* das Jahr.
*/
public void setJahresanzahl(int jahresanzahl)
{
this.jahresanzahl = jahresanzahl;
}
/**
* Eine durch den Benutzer auf der Konsole eingegebene Jahresanzahl wird erfasst.
*/
public void erfasseJahresanzahl()
{
try {
jahresanzahl = ((Integer) jahre[cbox2.getSelectedIndex()])
.intValue();
} catch (NullPointerException e) {
// TODO: handle exception
System.out.println( jahresanzahl);
}
}
/**
* Hier werden die Tage von 1 bis zur Gesamtanzahl der Tage eines Monats aufsteigend ausgegeben und in einen String
* gespeichert. Mit Berücksichtigung auf welchen Tage der Erste. eines Monats fällt, wird per Tabulator eingerückt.
* @param jahresanzahl
* Das Jahr.
* @param monatsanzahl
* Der x-te Monat.
* @param tagesanzahl
* Die Gesamtanzahl der Tage.
* @return
*/
public String schreibetage(int jahresanzahl, int monatsanzahl,
int tagesanzahl)
{
String ausgabe = "";
gc.set(jahresanzahl, monatsanzahl - 1, 1);
int wochentag = gc.get(Calendar.DAY_OF_WEEK);
for (int i = 1; i < wochentag; i++) {
ausgabe += "\t";
}
if (wochentag == 1) {
ausgabe += " ";
}
for (int i = 1; i <= tagesanzahl; i++) {
int tagesnummer = kalle.tagesnummer(i, monatsanzahl, jahresanzahl);
String feier = kalle.istFeiertag(jahresanzahl, tagesnummer);
if (i < 10) {
if (feier == null)
{
ausgabe += "0" + i + "\t";
}
else
{
ausgabe += "*" + "0" + i + "*" + "\t";
}
} else {
if (feier == null)
{
ausgabe += i + "\t";
}
else
{
ausgabe += "*" + i + "*" + "\t";
}
}
if ((i + wochentag - 1) % 7 == 0) {
ausgabe += "\n" + " ";
}
}
return ausgabe;
}
public void autorzeigen()
{
JOptionPane.showMessageDialog(this,
"Autor: Christian Kirrmann \n Version: 1.0 \n Versionsdatum: 2.12.2007");
}
public void jahrzeigen()
{
erfasseJahresanzahl();
for (int i = 1; i <= 12; i++) {
kalenderstring += (i);
kalenderstring += kal.schreibetage(getJahresanzahl(), i, kal.lieferetagesanzahl(i)) + "\n";
}
textarea.append(kalenderstring);
}
public void monatzeigen()
{
erfasseJahresanzahl();
erfasseMonatsanzahl();
kalenderstring += monatdeckblatt(getMonatsanzahl());
lieferetagesanzahl(getMonatsanzahl());
kalenderstring += schreibetage(getJahresanzahl(), getMonatsanzahl(), getTagesanzahl());
textarea.append(kalenderstring);
}
public String monatdeckblatt(int monatsnummer)
{
String ausgabe = "";
KalenderFunktionen kalle = new KalenderFunktionen();
final String[] b = kalle.monatsname;
ausgabe += "\n " + b[monatsnummer] + " " + getJahresanzahl();
ausgabe += "\n----------------------------------------------------";
ausgabe +="\n " + "So" + " " + "Mo" + " " + "Di" + " " + "Mi"
+ " " + "Do" + " " + "Fr" + " " + "Sa" + " \n";
return ausgabe;
}
/**
* Alles Grafische
*/
public Fenster()
{
super ("Kalender");
super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout (new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
gc.insets = new Insets (5, 5, 5, 5);
gc.anchor = GridBagConstraints.WEST;
gc.gridy = 0;
JMenuBar menuleiste = new JMenuBar();
add(menuleiste, gc);
JMenu dateispalte = new JMenu ("Datei");
menuleiste.add(dateispalte);
JMenuItem öffnen = new JMenuItem("Öffnen");
dateispalte.add(öffnen);
JMenuItem speichern = new JMenuItem("Speichern");
dateispalte.add(speichern);
JMenuItem beenden = new JMenuItem("Beenden");
dateispalte.add(beenden);
JMenu kalenderspalte = new JMenu ("Kalender");
menuleiste.add(kalenderspalte);
JMenuItem feiertage = new JMenuItem("Feiertage");
kalenderspalte.add(feiertage);
JMenuItem feiertageso = new JMenuItem("Feiertage, ohne So/Sa");
kalenderspalte.add(feiertageso);
JMenuItem wann = new JMenuItem("Wann");
kalenderspalte.add(wann);
JMenu lookspalte = new JMenu ("Look & Feel");
menuleiste.add(lookspalte);
JMenuItem windows = new JMenuItem("Windows");
lookspalte.add(windows );
JMenuItem metal = new JMenuItem("Metal");
lookspalte.add(metal);
JMenuItem motif = new JMenuItem("Motif");
lookspalte.add(motif);
JMenu infospalte = new JMenu ("Info");
menuleiste.add(infospalte);
JMenuItem autor = new JMenuItem("Autor/in");
infospalte.add(autor);
autor.addActionListener(this);
JMenuItem hilfe = new JMenuItem("Hilfe");
infospalte.add(hilfe);
gc.gridx = 1;
gc.gridy = 1;
gc.weighty = 1;
cbox = new JComboBox(monate);
add(cbox, gc);
gc.gridx = 2;
gc.gridy = 1;
gc.weightx = 1;
gc.weighty = 1;
JComboBox cbox2 = new JComboBox(jahre);
add(cbox2, gc);
JRadioButton b1 = new JRadioButton("Monat");
JRadioButton b2 = new JRadioButton("Jahr");
JRadioButton b3 = new JRadioButton("Monat mit Feiertagen");
JRadioButton b4 = new JRadioButton("Jahr mit Feiertagen");
ButtonGroup gruppe = new ButtonGroup();
gruppe.add(b1);
gruppe.add(b2);
gruppe.add(b3);
gruppe.add(b4);
gc.gridy = 2;
add (b1, gc);
b1.addActionListener(this);
gc.gridy = 3;
add (b2, gc);
b2.addActionListener(this);
gc.gridy = 4;
add (b3, gc);
b3.addActionListener(this);
gc.gridy = 5;
add (b4, gc);
b4.addActionListener(this);
gc.fill = GridBagConstraints.BOTH;
gc.gridy = 6;
gc.gridx = 0;
textarea = new JTextArea("Test");
add(new JScrollPane(textarea));
add(textarea, gc);
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals("Autor/in"))
{
autorzeigen();
}
if (e.getActionCommand().equals("Monat"))
{
monatzeigen();
}
if (e.getActionCommand().equals("Jahr"))
{
jahrzeigen();
}
}
}