Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - GregorianCalendar e JComboBox
Forum - Java - GregorianCalendar e JComboBox

Avatar
michele2308 (Normal User)
Newbie


Messaggi: 4
Iscritto: 14/05/2009

Segnala al moderatore
Postato alle 12:59
Venerdė, 30/12/2011
Salve a tutti sto realizzando un progetto in java, il mio problema č questo.. voglio mettere in una JComboBox tutti gli anni, in un altra tutti i mesi e in un altra i giorni.. Qualcuno sa aiutarmi? cercando in rete ho trovato il comando per risolvere il problema dei giorni.. usando il metodo "calendar.GetActualMaximum(calendar.DAY_OF_MOUTH).. scrivete il codice se avete  la soluzione.. Grazie in anticipo :D



Risolto in questo modo, credo sia di interesse..

Codice sorgente - presumibilmente Java

  1. //Giorno
  2. final JComboBox cmbGiorno = new JComboBox();
  3. getContentPane().add(cmbGiorno);
  4.                                
  5. //Anno
  6.                 final JComboBox cmbAnno = new JComboBox();
  7.                 cmbAnno.addActionListener(new ActionListener() {
  8.                 public void actionPerformed(ActionEvent arg0)
  9.                  {
  10.                      cmbGiorno.removeAllItems();
  11.                      annoScelto= cmbAnno.getSelectedIndex();
  12. //annoScelto č una variabile privata
  13.                      data.set(annoScelto, 1, 1);
  14.                 }
  15.                 });
  16.                
  17.             cmbAnno.setModel(new DefaultComboBoxModel(new String[] {"2012", "2013", "2014", "2015", "2016"}));
  18.         getContentPane().add(cmbAnno);
  19.                                
  20.  
  21. //Mese
  22. final JComboBox cmbMese = new JComboBox();
  23. cmbMese.addActionListener(new ActionListener() {
  24. public void actionPerformed(ActionEvent arg0)
  25. {
  26. cmbGiorno.removeAllItems();
  27. int meseScelto= cmbMese.getSelectedIndex();
  28. data.set(annoScelto, meseScelto, 1);
  29. int numGiorni=data.getActualMaximum(data.DAY_OF_MONTH);
  30.    for (int i=0;i<numGiorni;i++)
  31.    cmbGiorno.addItem(i+1);
  32. }
  33. });
  34. cmbMese.setModel(new DefaultComboBoxModel(new String[] {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"}));
  35. getContentPane().add(cmbMese);


Ultima modifica effettuata da michele2308 il 30/12/2011 alle 15:54
PM
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 19:40
Venerdė, 30/12/2011
Codice sorgente - presumibilmente Java

  1. JComboBox dd = new JComboBox();   //giorni
  2. for(int i = 1; i <= 31; i++){
  3.       gg.addItem(i);
  4. }
  5.  
  6. JComboBox mm = new JComboBox();  //mesi
  7. for(int i = 1; i <= 12; i++){
  8.       mm.addItem(i);
  9. }
  10.  
  11. JComboBox yy = new JComboBox();  //anni
  12. for(int i = 1980; i <= 2030; i++){
  13.       yy.addItem(i);
  14. }



Scusa per i giorni il ciclo lo fai iterare fino a data.DAY_OF_MONTH per il resto tutti gli anni hanno 12 mesi e gli anni li decidi tu - Bonny - 30/12/11 19:45
O forse non ho ben capito cosa vuoi fare e comunque prossimamente posta tutto il codice non qualche spezzone scritto non tanto bene cosi si capisce quasi subito l'errore. - Bonny - 30/12/11 19:47
Secondo me come ho fatto io č pių efficiente, usando Gregorian Calendar, tieni conto degli anni bisestili e ogni mese da i giorni esatti, come hai fatto tu tutti i mesi hanno 31 giorni.. - michele2308 - 30/12/11 21:31
io non vedo nessuna istanza di Gregorian Calendar - Bonny - 31/12/11 10:54
PM
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 11:12
Sabato, 31/12/2011
Codice sorgente - presumibilmente Java

  1. JComboBox GIORNI = new JComboBox();
  2. for (int i = 0; i < data.get(GregorianCalendar.DAY_OF_MONTH); i++) {
  3.             GIORNI.addItem(i + 1);
  4.         }
  5.  
  6.  
  7. JComboBox MESI = new JComboBox();
  8.  for(int i = 0; i < 12; i++){
  9.       MESI.addItem(i + 1);
  10. }
  11.  
  12. JComboBox ANNI = new JComboBox();
  13. for(int i = 1980; i <= 2030; i++){
  14.       ANNI.addItem(i + 1);
  15. }
  16.  
  17. ora vedo un istanza di GregorianCalendar


Ultima modifica effettuata da Bonny il 31/12/2011 alle 11:16
e comunque passando le castanti predefinite al metodo get() ottieni le informazioni che cerchi era questo che ti serviva o sbaglio? - Bonny - 31/12/11 11:22
PM