<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://forum.ubuntu-fr.org/extern.php?action=feed&amp;tid=1162201&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Forum Ubuntu-fr.org / [JAVA] (Résolu)]]></title>
		<link>http://forum.ubuntu-fr.org/viewtopic.php?id=1162201</link>
		<description><![CDATA[Les sujets les plus récents dans [JAVA] (Résolu).]]></description>
		<lastBuildDate>Wed, 09 Jan 2013 17:18:40 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] (Résolu)]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12145901#p12145901</link>
			<description><![CDATA[<p>Tu as deux classes &quot;autonomes&quot; (avec une fonction main)&#160; &quot;methj&quot; et &quot;Calendrier&quot;<br />Le fait de créer un objet Calendrier avec new n&#039;appelle que le constructeur, c&#039;est à dire Calendrier.Calendrier() mais pas Calendrier.main().<br />Étant donné que ta classe Calendrier est prévue comme indépendante, le fait d&#039;appeler Calendier.main() depuis une autre classe, va d&#039;abord appeler le constructeur avant d&#039;appeler main().<br />Et c&#039;est main() qui affiche la fenêtre, regardes bien le code.</p><p>La façon élégante aurait été de créer un classe à double entrée, c&#039;est à dire appelable en solo ou depuis une autre classe.<br />Il suffit de rajouter à l&#039;intérieur une fonction display() qui appelle main().<br />L&#039;appel aurait été:</p><div class="codebox"><pre><code>Calendrier cal = new Calendrier();
cal.display();</code></pre></div><p>Cela permet de traiter différemment les cas (couleurs, taille, etc,etc)</p>]]></description>
			<author><![CDATA[dummy@example.com (Maisondouf)]]></author>
			<pubDate>Wed, 09 Jan 2013 17:18:40 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12145901#p12145901</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] (Résolu)]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12145731#p12145731</link>
			<description><![CDATA[<p>Tout d&#039;abord merci pour la rapidité, ça fonctionne <img src="http://forum.ubuntu-fr.org/img/smilies/smile.png" width="15" height="15" alt="smile" /> </p><p>Mais j&#039;aimerai bien comprendre, peux-tu m&#039;expliquer s&#039;il te plait ?</p>]]></description>
			<author><![CDATA[dummy@example.com (shoot76)]]></author>
			<pubDate>Wed, 09 Jan 2013 16:59:09 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12145731#p12145731</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] (Résolu)]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12145711#p12145711</link>
			<description><![CDATA[<p>Remplace tes deux lignes</p><div class="codebox"><pre><code>		//Calendrier cal = new Calendrier();
	 	//cal.setVisible(true);</code></pre></div><p>par</p><div class="codebox"><pre><code>		Calendrier.main(null);</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (Maisondouf)]]></author>
			<pubDate>Wed, 09 Jan 2013 16:55:41 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12145711#p12145711</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] (Résolu)]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12145631#p12145631</link>
			<description><![CDATA[<div class="codebox"><pre><code>cal.setVisible(true);</code></pre></div><p>setVisible n&#039;est pas définie pour les objets Calendrier</p>]]></description>
			<author><![CDATA[dummy@example.com (Maisondouf)]]></author>
			<pubDate>Wed, 09 Jan 2013 16:47:15 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12145631#p12145631</guid>
		</item>
		<item>
			<title><![CDATA[[JAVA] (Résolu)]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12145321#p12145321</link>
			<description><![CDATA[<p>Bonjour à tous, </p><p>Ayant développé un programme en bash il y a quelques temps (à usage personnel), j&#039;ai décidé de le reprogrammer en Java, pour l&#039;utilisation multi plateforme, et le mettre ainsi à disposition de ma famille (qui l&#039;a apprécié), des amis, et pourquoi pas sur un site permettant à d&#039;autres étudiants de l&#039;utiliser (c&#039;est un logiciel de planning de révision, basé sur une méthode enseignée dans une prépa que j&#039;ai fréquenté). Bref ... les présentations faites, je vous énonce mon problème (je suis débutant en Java, merci si possible d&#039;expliquer le pourquoi du comment) </p><p>Je souhaitais ajouter un Calendrier à ce logiciel, pour permettre une sélection du jour d&#039;intérêt par l&#039;utilisateur. J&#039;ai trouvé un code tout fait sur internet (ceci étant largement au dessus de mes compétences, j&#039;avoue ... j&#039;ai plagié). La classe fonctionne à merveille sous eclipse, le calendrier se lance. <br />J&#039;essaie d&#039;appeler la classe dans ma méthode main en suivant les cours que j&#039;ai eu, et divers infos glanées sur le net, mais là, ça ne s&#039;affiche pas, pourriez vous m&#039;expliquer pouquoi ? </p><p>voici le code de la classe principale : </p><div class="codebox"><pre><code>import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;



public class methj {
	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		Calendar calendar=Calendar.getInstance();
		SimpleDateFormat sdf = new SimpleDateFormat(&quot;dd/MM/yyyy&quot;);
		int[] dateJ = {0,1,3,7,14,30,60};
		for (int i : dateJ) {
			calendar.add(Calendar.DATE, i);
			System.out.println(&quot;Nous serons le: &quot;+sdf.format(calendar.getTime()));
			/*FileWriter fw = new FileWriter(&quot;Dates.txt&quot;);
			fw.write(sdf.format(calendar.getTime()));
			fw.close();*/
		}
		Calendrier cal = new Calendrier();
		cal.setVisible(true);
	}
}</code></pre></div><p>et le calendrier si c&#039;est utile : </p><div class="codebox"><pre class="vscroll"><code>import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormatSymbols;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;


public class Calendrier
extends JPanel {
        
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private GregorianCalendar _calendar = new GregorianCalendar();
    
    private DateFormatSymbols _dateSymbols = new DateFormatSymbols();
    
    private SimpleDateFormat _formatMY = new SimpleDateFormat(&quot;MMMM yyyy&quot;);
    
    private int _firstDayOfWeek = _calendar.getFirstDayOfWeek();
    
    private final JLabel _monthYear = new JLabel(&quot;&quot;, 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 = &quot;next&quot;.equals(ae.getActionCommand()) ? 1: -1;
            _calendar.add(Calendar.MONTH, nb);
        updateMonthYear();
        updateDaysNumber();
        }
    };
    
    public Calendrier() {
        setLayout(new BorderLayout());
        // Month Panel
        final JPanel monthPanel = new JPanel();
        final JButton previous = new JButton(&quot;&lt;&lt;&quot;);
        previous.addActionListener(_changeMonth);
        final JButton next = new JButton(&quot;&gt;&gt;&quot;);
        next.addActionListener(_changeMonth);
        next.setActionCommand(&quot;next&quot;);
        _monthYear.setPreferredSize(new Dimension(120, 20));
        monthPanel.add(previous);
        monthPanel.add(_monthYear);
        monthPanel.add(next);
        add(monthPanel, BorderLayout.NORTH);
        // Day Panel
        final JPanel dayPanel = new JPanel();
        dayPanel.setLayout(new GridLayout(7, 7));
        for (int i = 0; i &lt; 7; ++i)
            dayPanel.add(_daysOfWeek[i] = new JLabel(&quot;&quot;, SwingUtilities.CENTER));
        for (int i = 0; i &lt; _daysNumber.length; ++i)
            dayPanel.add(_daysNumber[i] = new JButton());
        add(dayPanel, BorderLayout.CENTER);
        // Remplissage des composants
        updateMonthYear();
        updateDaysOfWeek();
        updateDaysNumber();
    }
    
    // Affiche le mois et l&#039;année en cours
    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 &lt; 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() {
        final Date tmp = _calendar.getTime();
        _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;
        for (int i = 0; i &lt; _daysNumber.length; ++i) {
            //Détermine si le composant est affiché ou non
            final boolean isNotEmpty = i &lt; LocalFirstDay - 1 || full;
            _daysNumber[i].setVisible(!isNotEmpty);
            // Affichage du jour
            if (!isNotEmpty) {
                final int dayOfMonth = _calendar.get(Calendar.DAY_OF_MONTH);
                _daysNumber[i].setText(String.valueOf(dayOfMonth));
                _calendar.add(Calendar.DAY_OF_MONTH, 1);
                full = 1 == _calendar.get(Calendar.DAY_OF_MONTH);
            }
        }
        _calendar.setTime(tmp);
    }
    
    
    public static void main(final String[] args)
    throws ParseException {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                final JFrame frame = new JFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.getContentPane().add(new Calendrier());
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}</code></pre></div><p>Merci à vous <img src="http://forum.ubuntu-fr.org/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[dummy@example.com (shoot76)]]></author>
			<pubDate>Wed, 09 Jan 2013 16:23:05 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12145321#p12145321</guid>
		</item>
	</channel>
</rss>
