Hallo zusammen,
bin noch ein ziemlicher Anfänger bei Programmieren von Java, also wundert euch nicht über eventuell schlechten Programmiercode.
Nun zur Frage:
Ich will einen einfachen Kalender erstellen. Mit dem Button btnPrev.ActionPerformed will ich einen Monat weiterzählen. Das klappt auch gut innerhalb der Schleife, jedoch will ich mit diesem Wert außerhalb des Buttons weiterarbeiten. Die Variable "monat" ändert sich aber außerhalb nicht.
Bitte helft mir.
bin noch ein ziemlicher Anfänger bei Programmieren von Java, also wundert euch nicht über eventuell schlechten Programmiercode.
Nun zur Frage:
Ich will einen einfachen Kalender erstellen. Mit dem Button btnPrev.ActionPerformed will ich einen Monat weiterzählen. Das klappt auch gut innerhalb der Schleife, jedoch will ich mit diesem Wert außerhalb des Buttons weiterarbeiten. Die Variable "monat" ändert sich aber außerhalb nicht.
Bitte helft mir.
package timetable;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.lang.reflect.Array;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextField;
public class TimetableMain extends JFrame {
private JPanel contentPane;
private JTable tblCal;
static int realDay, realMonth, realYear, currentMonth;
public int currentYear, AktuellerMonat, monat;
private JButton btnPrev;
private JTextField lblMonat;
private JButton btnZurueck;
private JButton btnTest;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TimetableMain frame = new TimetableMain();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public TimetableMain() {
setTitle("Timetable");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100, 100, 827, 470);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
this.setContentPane(contentPane);
contentPane.setLayout(null);
//Label Monat beim Start mit aktuellem Monat vorbelegen
String[] monate = {"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"};
JLabel lblDatum = new JLabel("Datum:");
lblDatum.setBounds(30, 213, 46, 14);
contentPane.add(lblDatum);
JComboBox cmbJahr = new JComboBox();
cmbJahr.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
cmbJahr.setBounds(120, 119, 133, 20);
contentPane.add(cmbJahr);
lblMonat = new JTextField();
lblMonat.setBounds(354, 164, 86, 20);
contentPane.add(lblMonat);
lblMonat.setColumns(10);
//Get real month/year
GregorianCalendar calendar = new GregorianCalendar(); //Create calendar
realMonth = calendar.get(GregorianCalendar.MONTH); //Get month
realYear = calendar.get(GregorianCalendar.YEAR); //Get year
currentYear = realYear;
monat = realMonth;
JButton btnVor = new JButton(">>");
btnVor.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (monat == 11) { //Forward one year
monat = 0;
currentYear++;
}
else { //Forward one month
monat++;
}
}
});
btnVor.setBounds(130, 163, 89, 23);
contentPane.add(btnVor);
System.out.println(monat);
btnZurueck = new JButton("<<");
btnZurueck.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (monat == 0){ //Back one year
monat = 11;
currentYear--;
}
else { //Back one month
monat--;
}
}
});
btnZurueck.setBounds(30, 163, 89, 23);
contentPane.add(btnZurueck);
//Aktuellen Monat ausgeben
if (monat == 0){
lblMonat.setText("Januar");
}
else if(monat == 1){
lblMonat.setText("Februar");
}
else if(monat == 2){
lblMonat.setText("März");
}
else if(monat == 3){
lblMonat.setText("April");
}
else if(monat == 4){
lblMonat.setText("Mai");
}
else if(monat == 5){
lblMonat.setText("Juni");
}
else if(monat == 6){
lblMonat.setText("Juli");
}
else if(monat == 7){
lblMonat.setText("August");
}
else if(monat == 8){
lblMonat.setText("September");
}
else if(monat == 9){
lblMonat.setText("Oktober");
}
else if(monat == 10){
lblMonat.setText("November");
}
else if(monat == 11){
lblMonat.setText("Dezember");
}
cmbJahr.setSelectedItem(String.valueOf(currentYear));
tblCal = new JTable();
tblCal.setBounds(0, 233, 121, 589);
tblCal.setModel(new DefaultTableModel(
new Object[][] {
{"01." + " " + String.valueOf(monate[monat])},
{"02." + " " + String.valueOf(monate[monat])},
{"03." + " " + String.valueOf(monate[monat])},
{"04." + " " + String.valueOf(monate[monat])},
{"05." + " " + String.valueOf(monate[monat])},
{"06." + " " + String.valueOf(monate[monat])},
{"07." + " " + String.valueOf(monate[monat])},
{"08." + " " + String.valueOf(monate[monat])},
{"09." + " " + String.valueOf(monate[monat])},
{"10." + " " + String.valueOf(monate[monat])},
{"11." + " " + String.valueOf(monate[monat])},
{"12." + " " + String.valueOf(monate[monat])},
{"13." + " " + String.valueOf(monate[monat])},
{"14." + " " + String.valueOf(monate[monat])},
{"15." + " " + String.valueOf(monate[monat])},
{"16." + " " + String.valueOf(monate[monat])},
{"17." + " " + String.valueOf(monate[monat])},
{"18." + " " + String.valueOf(monate[monat])},
{"19." + " " + String.valueOf(monate[monat])},
{"20." + " " + String.valueOf(monate[monat])},
{"21." + " " + String.valueOf(monate[monat])},
{"22." + " " + String.valueOf(monate[monat])},
{"23." + " " + String.valueOf(monate[monat])},
{"24." + " " + String.valueOf(monate[monat])},
{"25." + " " + String.valueOf(monate[monat])},
{"26." + " " + String.valueOf(monate[monat])},
{"27." + " " + String.valueOf(monate[monat])},
{"28." + " " + String.valueOf(monate[monat])},
{null},
{null},
{null},
},
new String[] {
"Datum"
}
));
contentPane.add(tblCal);
setUndecorated(false);
setVisible(true);
tblCal.setRowHeight(19);
//Label Monat beim Start mit aktuellem Monat vorbelegen
if (lblMonat.getText().length() == 0) {
// lblMonat.setText(String.valueOf(monate[MonatAktuell]));
}
//Erzeugen der Jahre in der ComboBox
int Jahre = 0;
for (int i = realYear-100; i <= realYear+100; i++) {//Anzahl der Jahre vor und zurück
cmbJahr.addItem(String.valueOf(i));
}
//Das aktuelle Jahr in der ComboBox belegen
cmbJahr.setSelectedItem(String.valueOf(currentYear));
//Das aktuell in der ComboBox gesetzte Jahr
//cmbJahr.getSelectedItem(String.valueOf(Jahre));
GraphicsEnvironment graphicsEnvironment=GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle maximumWindowBounds=graphicsEnvironment.getMaximumWindowBounds();
setBounds(maximumWindowBounds);
}
}