Hallo Leute,
ich habe mich seit langer Zeit mal wieder an ein noch nicht vollendetes Programm gemacht.
Dieses Programm soll dazu dienen einem per JComboBox anzuzeigen, was für Aufgaben anfallen.
Die ausgewählte Aufgabe wird angezeigt und man kann eine CheckBox aktivieren. Sobald die CheckBox aktiviert ist, soll bei einer bestimmten Anzahl von Tätigkeitswiederholungen die Tätigkeit aus der zweiten JComboBox verschwinden, sodass in der zweiten nur noch die angezeigt werden, die noch zu erledigen sind.
Ich habe hierfür verschiedene Überprüfungsmethoden geschrieben. Wenn man die erste Eingabe nimmt wird diese auch aus der zweiten JComboBox entfernt. Nur bei den anderen beiden Testobjekten funktioniert das nicht. Kann mir einer sagen woran das liegt?
Ich werde hier mal den Code auflisten, bei dem ich denke, dass dieser ausschlaggebend ist
Code:
Deklarationen und Initialisierungen:
[/code]
Überprüfungsmethoden:
[/code]
Ein kleiner Ausschnitt des ActionListeners:
[/code]
Ja, die Klasse besteht natürlich auch aus schließenden Klammern. (Aufgrund von der Codemenge nicht hinzugefügt)
Bei bedarf poste ich auch gerne das ganze Programm.
Wie gesagt, bei der ersten Auswahl klappt es, danach nicht mehr...
Für Tipps oder Lösungsvorschläge wäre ich dankbar
Lg
ich habe mich seit langer Zeit mal wieder an ein noch nicht vollendetes Programm gemacht.
Dieses Programm soll dazu dienen einem per JComboBox anzuzeigen, was für Aufgaben anfallen.
Die ausgewählte Aufgabe wird angezeigt und man kann eine CheckBox aktivieren. Sobald die CheckBox aktiviert ist, soll bei einer bestimmten Anzahl von Tätigkeitswiederholungen die Tätigkeit aus der zweiten JComboBox verschwinden, sodass in der zweiten nur noch die angezeigt werden, die noch zu erledigen sind.
Ich habe hierfür verschiedene Überprüfungsmethoden geschrieben. Wenn man die erste Eingabe nimmt wird diese auch aus der zweiten JComboBox entfernt. Nur bei den anderen beiden Testobjekten funktioniert das nicht. Kann mir einer sagen woran das liegt?
Ich werde hier mal den Code auflisten, bei dem ich denke, dass dieser ausschlaggebend ist
Code:
Deklarationen und Initialisierungen:
Java:
[code]
private static final long serialVersionUID = 1L;
JComboBox auswahl1,auswahl2;
JLabel aktuelleWoche,nochErledigen,nEA;
JCheckBox ja;
private String NAME="Haushaltsplan";
int WIDTH=900;
int HEIGHT=200;
int A=200;
int B=100;
Container c;
//Initialisierung der Konstanten
private int STAUBSAUGEN=6,FENSTER_PUTZEN_DIELE=16,FLUR_WISCHEN=14,FENSTER_PUTZEN_WOHNZIMMER=12,TOILETTE=10,
BADEWANNE_INKL_ABLAGE_UND_HEIZUNG=9,FENSTER_PUTZEN_SCHLAFZIMMER=8,FENSTER_PUTZEN_KUECHE=8,FENSTER_PUTZEN_BAD=7,
BODEN_BAD_WISCHEN=7,BODEN_KUECHE_WISCHEN=7,WASCHBECKEN_INKL_ABLAGE_UND_SPIEGEL=7,BETTEN_BEZIEHEN=7,
ARBEITSPLATTE_HERD_SPUELE_TISCH=6,MIKROWELLE_BACKOFEN=5,SPIEGEL_IM_SCHLAFZIMMER=5,KUEHLSCHRANK=5,MUELL_RAUSBRINGEN=5,
STAUB_WISCHEN=4,WAESCHE_WASCHEN_AUFHAENGEN=4,SPUELMASCHINE_EINRAEUMEN_AUSRAEUMEN=3,GLASTISCH_PUTZEN=2,SOFAS_SAUGEN=2,
ALTPAPIER_RAUSBRINGEN=2,BLUMEN_GIESSEN=1,BADEZIMMER_PUTZEN=12;
String dinge[]=new String[]{"Staubsaugen","Fenster putzen Diele","Flur wischen","Fenster Wohnzimmer","Toilette",
"Badewanne inkl. Ablagen u. Heizung","Fenster Schlafzimmer","Fenster Küche","Fenster Bad","Boden Bad wischen",
"Boden Küche wischen","Waschbecken inkl. Ablage u. Spiegel","Betten beziehen","Arbeitsplatte, Herd, Spüle u. Tisch",
"Mikrowelle, Backofen","Spiegel im Schlafzimmer putzen","Kühlschrank","Müll rausbringen","Staub wischen","Wäsche waschen/aufhängen",
"Spülmaschine einräumen/ausräumen","Glastisch putzen","Sofas saugen","Altpapier rausbringen","Blumen gießen"};
String dinge2[]=new String[]{"Staubsaugen","Fenster putzen Diele","Flur wischen","Fenster Wohnzimmer","Toilette",
"Badewanne inkl. Ablagen u. Heizung","Fenster Schlafzimmer","Fenster Küche","Fenster Bad","Boden Bad wischen",
"Boden Küche wischen","Waschbecken inkl. Ablage u. Spiegel","Betten beziehen","Arbeitsplatte, Herd, Spüle u. Tisch",
"Mikrowelle, Backofen","Spiegel im Schlafzimmer putzen","Kühlschrank","Müll rausbringen","Staub wischen","Wäsche waschen/aufhängen",
"Spülmaschine einräumen/ausräumen","Glastisch putzen","Sofas saugen","Altpapier rausbringen","Blumen gießen"};
Überprüfungsmethoden:
Java:
[code]
//hier wird geprüft, ob Tätigkeiten erledigt wurden
//Wenn eine Tätigkeit ausgewählt wurde wird gefragt ob die Anzahl bereits ausreicht
//wenn das der Fall ist, wird die Tätigkeit aus der ComboBox entfernt
public void erledigt(JComboBox auswahl1,JComboBox auswahl2)
{
if(auswahl1.getSelectedItem().equals("Staubsaugen"))
{
String status="ok";
if(/*checkAnzahl(auswahl1,ja)*/status=="ok")
{
auswahl2.removeItem("Staubsaugen");
}
else
JOptionPane.showMessageDialog(null, "Diese Tätigkeit müssen sie noch öfter erledigen","Fehler",JOptionPane.ERROR_MESSAGE);
}
}
//was wird heute erledigt prüft ob das Eingabefeld null ist
//wenn das nicht der Fall ist, wird die Methode Checkanzahl aufgerufen
//und dann aus der comboBox das zugehörige Item gelöscht
public void wirdErledigt(JComboBox auswahl1,JComboBox auswahl2)
{
// Scanner sc=new Scanner(System.in);
if((auswahl1.getSelectedItem()!=auswahl2.getSelectedItem())&&(checkAnzahl(auswahl1,ja)=="ok"))
{
auswahl2.removeItem(auswahl2.getSelectedItem());
}
else
JOptionPane.showMessageDialog(null, "Diese Tätigkeit muss noch erledigt werden","Fehler",JOptionPane.ERROR_MESSAGE);
}
//Hier wird ermittelt, falls Tätigkeiten mehrmals in der Woche anstehen
//ob diese bereits erledigt wurden oder nicht
public String checkAnzahl(JComboBox auswahl,JCheckBox ja)
{
String Status="ok";
if((Status=="ok")&&(ja.isEnabled()==true))
{
erledigt(auswahl1, auswahl2);
}
else
JOptionPane.showMessageDialog(null, "Diese Tätigkeit wurde noch nicht häufig genug durchgeführt","Fehler",JOptionPane.ERROR_MESSAGE);
return Status;
}
public void/*int*/ anzahl(JComboBox auswahl1,JComboBox auswahl2,JCheckBox ja,int count)
{
if((auswahl1.getSelectedItem().equals(dinge))&&(ja.isEnabled()==true))
count +=1;
if((auswahl1.getSelectedItem().equals(dinge))&&(ja.isEnabled()==true)&&(count==2))
{
auswahl2.getSelectedItem().equals(dinge);
auswahl2.removeItem(dinge.equals(dinge2));
Haushalt.this.repaint();
}
// return 0;
}
Ein kleiner Ausschnitt des ActionListeners:
Java:
[code]
class MachWas implements ActionListener
{
int count=0;
@Override
public void actionPerformed(ActionEvent e)
{
//Testweise nur bei den ersten dreien sämtliche Überprüfungsmethoden aufgerufen
try{
if((auswahl1.getSelectedItem().equals("Staubsaugen"))&&(ja.isEnabled()==true))
{
aktuelleWoche.setText("aktuelle Woche: Staubsaugen"+" "+STAUBSAUGEN+" P");
erledigt(auswahl1, auswahl2);
anzahl(auswahl1, auswahl2, ja, count);
}
else if((auswahl1.getSelectedItem().equals("Fenster putzen Diele"))&&(ja.isEnabled()==true))
{
aktuelleWoche.setText("aktuelle Woche: Fenster putzen Diele"+" "+FENSTER_PUTZEN_DIELE+" P");
erledigt(auswahl1, auswahl2);
anzahl(auswahl1, auswahl2, ja, count);
}
else if(auswahl1.getSelectedItem().equals("Flur wischen"))
{
aktuelleWoche.setText("aktuelle Woche: Flur wischen"+" "+FLUR_WISCHEN+" P");
erledigt(auswahl1, auswahl2);
anzahl(auswahl1, auswahl2, ja, count);
}
else if(auswahl1.getSelectedItem().equals("Fenster Wohnzimmer"))
{
aktuelleWoche.setText("aktuelle Woche: Fenster Wohnzimmer"+" "+FENSTER_PUTZEN_WOHNZIMMER+" P");
}
else if(auswahl1.getSelectedItem().equals("Toilette"))
{
aktuelleWoche.setText("aktuelle Woche: Toilette"+" "+TOILETTE+" P");
}
Ja, die Klasse besteht natürlich auch aus schließenden Klammern. (Aufgrund von der Codemenge nicht hinzugefügt)
Bei bedarf poste ich auch gerne das ganze Programm.
Wie gesagt, bei der ersten Auswahl klappt es, danach nicht mehr...
Für Tipps oder Lösungsvorschläge wäre ich dankbar
Lg