Problème avec calendrier

ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 - 11 nov. 2007 à 20:41
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 - 11 nov. 2007 à 23:41
salut tout le monde


j'ai deux problème avec le calendrier


le 1) a chaque fois je change le mois et je click sur un numéro , la fenetre sera fermer et plusieurs fenetres apparaisent au lien qu'une seule fenetre .


le 2) avec la couleur rouge qui sur le bouton qui montre que nous somes le jour X mais si je change le mois la couleur rouge reste toujours sur le bouton si vendredi reste


 


pour mieux me comprendre voila le code à executer


 


package mu ;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.util.Iterator;
 import java.util.ArrayList;
import java.awt.*;
import java.io.*;
import java.text.DateFormatSymbols;
import java.text.ParseException;
import java.text.SimpleDateFormat;




 public class ra  extends JFrame {


            private GregorianCalendar _calendar = new GregorianCalendar();


            private DateFormatSymbols _dateSymbols = new DateFormatSymbols();


            private SimpleDateFormat _formatMY = new SimpleDateFormat("MMMM yyyy");


            private int _firstDayOfWeek = _calendar.getFirstDayOfWeek()+5;


            private final JLabel _monthYear = new JLabel("", SwingUtilities.CENTER);


            private final JLabel[] _daysOfWeek = new JLabel[7];


            private final JButton[] _daysNumber = new JButton[42];


 


            private final ActionListener _changeMonth = new ActionListener() {
                public void actionPerformed(final ActionEvent ae) {
                    final int nb = "next".equals(ae.getActionCommand()) ? 1: -1;
                    _calendar.add(Calendar.MONTH, nb);
                updateMonthYear();
                updateDaysNumber();
                }
            };




  private final ActionListener oui = new ActionListener() {
  public void actionPerformed(final ActionEvent e) {
  JButton buttton = (JButton)e.getSource();
  String a=buttton.getText();
  String  s = _calendar.get(Calendar.YEAR)+"/"+a+"/"+_calendar.get(Calendar.MONTH);


   setVisible(false);
   chercher A = new chercher();
   A.dd(s);
   A.setVisible(true);


   }
  };


public ra () {
              
      setTitle(" itemsets frequents  ");
      this.setResizable(false);
      this.setSize(350,350);
      this.setLocationRelativeTo(null);
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      JPanel panel = new JPanel();
      panel.setLayout(new BorderLayout());
 
  
             
                // Month Panel
                final JPanel monthPanel = new JPanel();
                final JButton previous = new JButton("<<");
                previous.addActionListener(_changeMonth);
                final JButton next = new JButton(">>");
                next.addActionListener(_changeMonth);
             
                _monthYear.setPreferredSize(new Dimension(120, 20));
                monthPanel.add(previous);
                monthPanel.add(_monthYear);
                monthPanel.add(next);
                panel.add(monthPanel, BorderLayout.NORTH);


                // Day Panel
                final JPanel dayPanel = new JPanel();
                dayPanel.setLayout(new GridLayout(7, 7));
                for (int i = 0; i < 7; ++i)
                dayPanel.add(_daysOfWeek[i] = new JLabel("",SwingUtilities.CENTER));
                for (int i = 0; i < _daysNumber.length; ++i)
                dayPanel.add(_daysNumber[i] = new JButton());
                panel.add(dayPanel, BorderLayout.CENTER);
                // Remplissage des composants
                updateMonthYear();
                updateDaysOfWeek();
                updateDaysNumber();
               
                setContentPane(panel);
               
            }


            private void updateMonthYear() {
                _monthYear.setText(_formatMY.format(_calendar.getTime()));
            }


            // Affiche les jours de la semaine
            private void updateDaysOfWeek() {
                final String[] weekDays = _dateSymbols.getShortWeekdays();
                for (int i = 1; i < weekDays.length; ++i) {
                      
                    final int index = (i - 2 + _firstDayOfWeek) % 7 + 1;
                   
                    _daysOfWeek[i - 1].setText(weekDays[index]);
                }
            }


            // Affiche le numéro des jours
            private void updateDaysNumber() {
               int A;
                final Date tmp = _calendar.getTime();
                Calendar now = Calendar.getInstance();
                _calendar.set(Calendar.DAY_OF_MONTH, 1);
                final int firstDay = _calendar.get(Calendar.DAY_OF_WEEK);
                final int LocalFirstDay = (firstDay - _firstDayOfWeek + 7) % 7 + 1;
                boolean full = false;
              int v;
                for (int i = 0; i < _daysNumber.length; ++i) {
             
                    final boolean isNotEmpty = i < LocalFirstDay - 1 || full;
                    _daysNumber[i].setVisible(!isNotEmpty);
           
                    if (!isNotEmpty) {
                        final int dayOfMonth = _calendar.get(Calendar.DAY_OF_MONTH);
                        _daysNumber[i].setText(String.valueOf(dayOfMonth));
                       A =dayOfMonth;


                        _calendar.add(Calendar.DAY_OF_MONTH, 1);                        full 1 _calendar.get(Calendar.DAY_OF_MONTH);
                    }
                    if (_calendar.get(Calendar.DAY_OF_WEEK) == 7) {
                _daysNumber[i].setBackground(Color.BLUE);
               }


    if(_calendar.get(Calendar.DAY_OF_YEAR)==now.get(Calendar.DAY_OF_YEAR)){




      if (_calendar.get(Calendar.YEAR) == now.get(Calendar.YEAR)) {
       
          _daysNumber[i + 1].setBackground(Color.red);
        
    }
    }
   _daysNumber[i].addActionListener(oui);
                }
 
                _calendar.setTime(tmp);
            }


        
        
            public static void main(final String[] args)
                    {
                  ra gui = new  ra ();
                        gui.setVisible(true);
                    }
              
}

1 réponse

ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
11 nov. 2007 à 23:41
j'ai trouvé l'erreur pour la premiere question mais le deuxiéme problème pas encore


 
0
Rejoignez-nous