Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind

Taulant

Mitglied
Also wenn Schaltjahr ist soll ich bei Februar + 1 einfuegen.

Aber mir fiel eben auf das dass Programm selbst dass nicht berechnet:
Java:
monthNum = monthNum + 1 ;
Das Problem scheint also irgendwo bei years zu sein, aber ich komm einfach nicht drauf.

Also meine Frage ist, wie ich die years aus der while schleife, zum vergleich fuer meinen if satz verwende. Die Jahre werden ja angezeigt, aber

int year = cbxYear.getSelectedIndex();

scheint nicht die Jahre zum Vergleich (nochmal gg) aus der while Schleife die in public class geschrieben wurde zu uebernehmen.



Java:
 public class Asg1KeapYear extends javax.swing.JFrame {

  public String[] Months ={"January","February","March","April","May", "June", "July", "August", "September", "Oktober", "November", "December"};
    public Asg1KeapYear() {
        initComponents();
         int MonthNo = 0;
while (MonthNo < Months.length) 
     {
      cbxMonth.addItem(Months[MonthNo]);
	 MonthNo = MonthNo + 1;
     }
int year =1800;
while(year<2014)
{
cbxYear.addItem(year + 1);
year = year + 1;
}
                           }


Java:
int[] monthNumber = {31, 28, 31, 30, 31, 30 , 31 , 31 , 30 , 31 ,30 ,31};
       int month = cbxMonth.getSelectedIndex();
       int monthNum = monthNumber[month];
       int years = cbxYear.getSelectedIndex();
       
       if ((years % 400 == 0) || ((years % 4 == 0) && (years % 100 != 0)))
       {
        monthNumber[1]++;
       }
          
        txtResult.setText(monthNum + "" );

Danke im vorraus 🙂
 
Ich dachte mir du hattest eine neue Frage ... für diese neue Frage wäre ein neues Thema passend gewesen.
Für die gleiche Frage hättest du aber keinen neuen Thread aufmachen müssen!

int year = cbxYear.getSelectedIndex();
scheint nicht die Jahre zum Vergleich (nochmal gg) aus der while Schleife die in public class geschrieben wurde zu uebernehmen.

Nein weil du hier nur einen(!) Wert zurück bekommst und zwar für den aktuell ausgewählten Index.


Java:
int[] monthNumber = {31, 28, 31, 30, 31, 30 , 31 , 31 , 30 , 31 ,30 ,31};
       int month = cbxMonth.getSelectedIndex();
       int monthNum = monthNumber[month];
       int years = cbxYear.getSelectedIndex();
       
       if ((years % 400 == 0) || ((years % 4 == 0) && (years % 100 != 0)))
       {
        monthNumber[1]++;
       }
          
        txtResult.setText(monthNum + "" );

Wo rufst du diesen Code auf?
Ebenfalls im Konstruktor von "Asg1KeapYear"?
Wenn ja liegt dort dein Denkfehler! Du müsstest an die ComboBox für die Jahre einen ChangeListener dranhängen.
Sobald du den Wert in dieser ComboBox änderst musst du für überprüfen ob du auch den Monat Februar ausgewählt hast.
Ist das der Fall dann kannst du die ComboBox für Tage entsprechend mit mehr oder weniger Tagen befüllen.
 
Nein den Code rufe ich im button auf. Nur die while Schleifen sind im Konstruktor, kann man wirklich nur mit
Java:
 int years = cbxYear.getSelectedIndex();
das Jahr aus dem Konstruktor zum Vergleichen bekommen?
 
"getSelectedIndex()" macht das was in der Doku drinnensteht.
Es gibt dir den Index des aktuell ausgewählten Eintrags zurück. (beginnend bei 0).
Sprich du bekommst hier nur den Index zurück aber nicht das von dir gewünschte Jahr.

In der Doku findest du eine Methode, welche dir hilft das ausgewählte Jahr zu bekommen
JComboBox - Dokumentation
 
Ah vielen dank sehr hilfreich 🙂, ich zaehle dass mal als genug erfolg um endlich schlafen zu gehen 😀 lebe in Australien, schon 00:06 ^^ Bis dann
 

Zurück
Oben