package de.tutorials;
import java.awt.Container;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Kalender extends JFrame {
private GregorianCalendar calendar = new GregorianCalendar();
private JTextField tf_jahr = new JTextField();
private JTextField tf_monat = new JTextField();
private int w_zähler = 1;
private int pos_x = 0;
private int pos_y = 0;
private int bt_breite = 60;
public Kalender() {
super("Kalender");
init();
}
private void init() {
tf_jahr.setEditable(false);
tf_jahr.setHorizontalAlignment(JTextField.CENTER);
tf_jahr.setText(String.valueOf(getYear()));
tf_monat.setEditable(false);
tf_monat.setHorizontalAlignment(JTextField.CENTER);
tf_monat.setText(getMonth());
// Buttons zum aussuchen des Jahres
JButton j_weiter = new JButton("-->");
JButton j_zurück = new JButton("<--");
// Buttons zum aussuchen des Monats
JButton m_weiter = new JButton("-->");
JButton m_zurück = new JButton("<--");
Container c = getContentPane();
c.setLayout(null);
j_zurück.setBounds(10, 10, 60, 20);
tf_jahr.setBounds(80, 10, 80, 20);
j_weiter.setBounds(170, 10, 60, 20);
m_zurück.setBounds(300, 10, 60, 20);
tf_monat.setBounds(370, 10, 80, 20);
m_weiter.setBounds(460, 10, 60, 20);
JButton bt_tag[] = new JButton[31];
pos_x = 90;
pos_y = 80;
// Buttons für die Tage des Monats
for (int tage = 0; tage < getDays(); tage++) {
bt_tag[tage] = new JButton();
bt_tag[tage].setText(String.valueOf(tage + 1));
bt_tag[tage].setBounds(pos_x, pos_y, bt_breite, 50);
c.add(bt_tag[tage]);
pos_x += 65;
if (tage % 7 == 6) {
w_zähler += 1;
pos_y += 55;
pos_x = 90;
}
}
JButton bt_woche[] = new JButton[5];
pos_x = 10;
pos_y = 80;
// Buttons für die Woche des Jahres
for (int wochen = 0; wochen < w_zähler; wochen++) {
bt_woche[wochen] = new JButton();
bt_woche[wochen].setText(String.valueOf("#" + getWeek()));
bt_woche[wochen].setBounds(pos_x, pos_y, bt_breite, 50);
c.add(bt_woche[wochen]);
pos_y += 55;
}
c.add(j_zurück);
c.add(j_weiter);
c.add(tf_jahr);
c.add(m_zurück);
c.add(m_weiter);
c.add(tf_monat);
}
// Getter fürs Jahr
public int getYear() {
return calendar.get(Calendar.YEAR);
}
// Getter des Monats mit Sprach-Formatierung
public String getMonth() {
return calendar.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale
.getDefault());
}
// Getter für die Tage des Monats
public int getDays() {
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
// Getter für den ersten Tag des Monats
public int getFirstDay() {
return calendar.getFirstDayOfWeek();
}
// Getter für die Woche im Jahr
public int getWeek() {
return calendar.get(Calendar.WEEK_OF_YEAR);
}
public static void main(String[] args) {
Kalender kal = new Kalender();
kal.setSize(550, 500);
kal.setVisible(true);
}
}