Hallo liebe Community,
da ihr mir das letzte mal schon so erfolgreich geholfen habt, wende ich mich hier mit einem neuen Problem an euch.
Und zwar habe ich angefangen mein Programm auf eine grafische Benutzeroberfläche abzuändern. Nun hänge ich bei folgendem Problem.
Ich möchte das Aktuelle Datum über 3 verschiedene Comboboxen mit Actionlistener einlesen lassen. Ich habe also jeweils eine Combobox für Jahr, Monat und Tag. Nun ist es ja so, das nicht jeder Monat die gleiche Anzahl an Tagen hat, weswegen ich die Arraylist "Tag" nicht vorher deklarieren kann. Und zwar solls so ablaufen, das ich zuerst das Jahr und Monat auswählen lasse, während "Tag" noch ohne Daten sind, so dass niemand da etwas falsches auswählen kann. Sobald beide eingetragen sind, soll die ArrayList für "Tag" gefüllt werden, mit der berücksichtung auf Schaltjahr und den Monat, und ggf. soll dieses dann auch wieder rausgeschmissen werden, falls jemand dann nochmal Jahr oder Monat ändert.
Bei der Abfrage wie viele Tage die ArrayList denn nun haben soll, dachte ich an eine einfache If-abfrage ob schaltjahr und welcher monat.
Momentan ist es so das ich bei der Auswahl des Jahres eine ClassCastException bekomme.
Die Schaltjahrabfrage hab ich bisher noch nicht eingebaut, aber das ist ja keine große Sache und lässt sich hinterher einbauen.
Bisher sieht mein quellcode deshalb recht zusammengewürfelt aus:
[Java]
public class DropDownTagListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
tag = (Integer) dropdowntag.getSelectedItem();
}
}
public class DropDownMonatListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
monat = dropdownmonat.getSelectedIndex();
if (monat == 0)
{
String[] dropdownliste = {""};
}
if (monat == 2)
{
String[] dropdownliste = {"1",...,"28"};
}
else if (monat == 1 ||monat == 3 ||monat == 5 ||monat == 7 ||monat == 8 ||monat == 10 ||monat == 12)
{
String[] dropdownliste = {"1",...,"31"};
}
else
{
String[] dropdownliste = {"1",...,"30"};
}
}
}
public class DropDownJahrListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
jahr = (Integer)dropdownjahr.getSelectedItem();
}
}
[/code]
weiter unten im Quellcode(Main) werden diese dann deklariert und aufgerufen:
Ich danke schonmal im Vorraus falls ihr helfen könnt. Bei Rückfragen stehe ich auch gern zur Verfügung.
da ihr mir das letzte mal schon so erfolgreich geholfen habt, wende ich mich hier mit einem neuen Problem an euch.
Und zwar habe ich angefangen mein Programm auf eine grafische Benutzeroberfläche abzuändern. Nun hänge ich bei folgendem Problem.
Ich möchte das Aktuelle Datum über 3 verschiedene Comboboxen mit Actionlistener einlesen lassen. Ich habe also jeweils eine Combobox für Jahr, Monat und Tag. Nun ist es ja so, das nicht jeder Monat die gleiche Anzahl an Tagen hat, weswegen ich die Arraylist "Tag" nicht vorher deklarieren kann. Und zwar solls so ablaufen, das ich zuerst das Jahr und Monat auswählen lasse, während "Tag" noch ohne Daten sind, so dass niemand da etwas falsches auswählen kann. Sobald beide eingetragen sind, soll die ArrayList für "Tag" gefüllt werden, mit der berücksichtung auf Schaltjahr und den Monat, und ggf. soll dieses dann auch wieder rausgeschmissen werden, falls jemand dann nochmal Jahr oder Monat ändert.
Bei der Abfrage wie viele Tage die ArrayList denn nun haben soll, dachte ich an eine einfache If-abfrage ob schaltjahr und welcher monat.
Momentan ist es so das ich bei der Auswahl des Jahres eine ClassCastException bekomme.
Die Schaltjahrabfrage hab ich bisher noch nicht eingebaut, aber das ist ja keine große Sache und lässt sich hinterher einbauen.
Bisher sieht mein quellcode deshalb recht zusammengewürfelt aus:
[Java]
public class DropDownTagListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
tag = (Integer) dropdowntag.getSelectedItem();
}
}
public class DropDownMonatListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
monat = dropdownmonat.getSelectedIndex();
if (monat == 0)
{
String[] dropdownliste = {""};
}
if (monat == 2)
{
String[] dropdownliste = {"1",...,"28"};
}
else if (monat == 1 ||monat == 3 ||monat == 5 ||monat == 7 ||monat == 8 ||monat == 10 ||monat == 12)
{
String[] dropdownliste = {"1",...,"31"};
}
else
{
String[] dropdownliste = {"1",...,"30"};
}
}
}
public class DropDownJahrListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
jahr = (Integer)dropdownjahr.getSelectedItem();
}
}
[/code]
weiter unten im Quellcode(Main) werden diese dann deklariert und aufgerufen:
Java:
fenster = new JFrame("Fenster");
dropdowntag = new JComboBox(dropdownliste);
dropdownmonat = new JComboBox(dropdownliste2);
dropdownjahr = new JComboBox(dropdownliste3);
dropdowntag.addActionListener(new DropDownTagListener());
dropdownmonat.addActionListener(new DropDownMonatListener());
dropdownjahr.addActionListener(new DropDownJahrListener());
JPanel sued = new JPanel();
fenster.add(BorderLayout.SOUTH, sued);
SendButton = new JButton("Senden");
AbortButton = new JButton("Abbrechen");
sued.add(BorderLayout.WEST, SendButton);
sued.add(BorderLayout.EAST, AbortButton);
JPanel center = new JPanel();
fenster.add(BorderLayout.CENTER,center);
center.add(BorderLayout.WEST, dropdowntag);
center.add(BorderLayout.CENTER, dropdownmonat);
center.add(BorderLayout.EAST, dropdownjahr);
fenster.setVisible(true);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenster.setSize(300,300);
SendButton.addActionListener(new SendButtonListener());
AbortButton.addActionListener(new AbortButtonListener());
Ich danke schonmal im Vorraus falls ihr helfen könnt. Bei Rückfragen stehe ich auch gern zur Verfügung.