Faculté des Sciences de Luminy |
Programmation Orientée Objets, langage Java
|
Henri Garreta
|
Fonction principale (la même à tous les exercices, en replaçant Version1 par Version2, Version3, etc.)
public class DateEtHeure { public static void main(String[] args) { new Version1(); } }
Fichier Version1.java :
import java.awt.*; import java.awt.event.*; import java.util.*; import java.text.DateFormat; public class Version1 extends Frame { private DateFormat avecDate = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.MEDIUM, Locale.FRANCE); private DateFormat sansDate = DateFormat.getTimeInstance( DateFormat.MEDIUM, Locale.FRANCE); Checkbox court; class Afficheur extends Panel { public Afficheur() { setFont(new Font("SansSerif", Font.PLAIN, 24)); } public void paint(Graphics g) { Date d = new Date(); String s = court.getState() ? sansDate.format(d) : avecDate.format(d); g.drawString(s, 20, 35); } } public Version1() { super("Version 1"); setSize(500, 100); court = new Checkbox("Format court"); Panel afficheur = new Afficheur(); Panel commande = new Panel(); commande.add(court); add(afficheur, BorderLayout.CENTER); add(commande, BorderLayout.SOUTH); setVisible(true); } }
import java.awt.*; import java.awt.event.*; import java.util.*; import java.text.DateFormat; public class Version2 extends Frame { private DateFormat avecDate = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.MEDIUM, Locale.FRANCE); private DateFormat sansDate = DateFormat.getTimeInstance( DateFormat.MEDIUM, Locale.FRANCE); Checkbox court; class Afficheur extends Panel { public Afficheur() { setFont(new Font("SansSerif", Font.PLAIN, 24)); } public void paint(Graphics g) { for (;;) { Date d = new Date(); String s = court.getState() ? sansDate.format(d) : avecDate.format(d); g.drawString(s, 20, 35); } } } public Version2() { super("Version 2"); setSize(500, 100); court = new Checkbox("Format court"); Panel afficheur = new Afficheur(); Panel commande = new Panel(); commande.add(court); add(afficheur, BorderLayout.CENTER); add(commande, BorderLayout.SOUTH); setVisible(true); } }
import java.awt.*; import java.awt.event.*; import java.util.*; import java.text.DateFormat; public class Version3 extends Frame { private DateFormat avecDate = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.MEDIUM, Locale.FRANCE); private DateFormat sansDate = DateFormat.getTimeInstance( DateFormat.MEDIUM, Locale.FRANCE); Checkbox court; class Afficheur extends Panel { public Afficheur() { setFont(new Font("SansSerif", Font.PLAIN, 24)); } public void paint(Graphics g) { for (;;) { Date d = new Date(); String s = court.getState() ? sansDate.format(d) : avecDate.format(d); g.clearRect(0, 0, getSize().width, getSize().height); g.drawString(s, 20, 35); } } } public Version3() { super("Version 3"); setSize(500, 100); court = new Checkbox("Format court"); Panel afficheur = new Afficheur(); Panel commande = new Panel(); commande.add(court); add(afficheur, BorderLayout.CENTER); add(commande, BorderLayout.SOUTH); setVisible(true); } }
import java.awt.*; import java.awt.event.*; import java.util.*; import java.text.DateFormat; public class Version4 extends Frame { private DateFormat avecDate = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.MEDIUM, Locale.FRANCE); private DateFormat sansDate = DateFormat.getTimeInstance( DateFormat.MEDIUM, Locale.FRANCE); Checkbox court; class Afficheur extends Panel { public Afficheur() { setFont(new Font("SansSerif", Font.PLAIN, 24)); } public void paint(Graphics g) { for (;;) { Date d = new Date(); String s = court.getState() ? sansDate.format(d) : avecDate.format(d); g.clearRect(0, 0, getSize().width, getSize().height); g.drawString(s, 20, 35); try { Thread.sleep(1000); } catch(InterruptedException e) { } } } } public Version4() { super("Version 4"); setSize(500, 100); court = new Checkbox("Format court"); Panel afficheur = new Afficheur(); Panel commande = new Panel(); commande.add(court); add(afficheur, BorderLayout.CENTER); add(commande, BorderLayout.SOUTH); setVisible(true); } }
import java.awt.*; import java.awt.event.*; import java.util.*; import java.text.DateFormat; public class Version5 extends Frame { private DateFormat avecDate = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.MEDIUM, Locale.FRANCE); private DateFormat sansDate = DateFormat.getTimeInstance( DateFormat.MEDIUM, Locale.FRANCE); Checkbox court; class Afficheur extends Panel { public Afficheur() { setFont(new Font("SansSerif", Font.PLAIN, 24)); } public void paint(Graphics g) { Date d = new Date(); String s = court.getState() ? sansDate.format(d) : avecDate.format(d); g.clearRect(0, 0, getSize().width, getSize().height); g.drawString(s, 20, 35); } } public Version5() { super("Version 5"); setSize(500, 100); court = new Checkbox("Format court"); Panel afficheur = new Afficheur(); Panel commande = new Panel(); commande.add(court); add(afficheur, BorderLayout.CENTER); add(commande, BorderLayout.SOUTH); setVisible(true); Thread t = new Agitateur(afficheur); t.start(); } } class Agitateur extends Thread { private Component cible; public Agitateur(Component cible) { this.cible = cible; } public void run() { for (;;) { cible.repaint(); try { sleep(1000); } catch(InterruptedException e) { } } } }
import java.awt.*; import java.awt.event.*; import java.util.*; import java.text.DateFormat; public class Version6 extends Frame implements Runnable { private DateFormat avecDate = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.MEDIUM, Locale.FRANCE); private DateFormat sansDate = DateFormat.getTimeInstance( DateFormat.MEDIUM, Locale.FRANCE); Checkbox court; Panel afficheur; class Afficheur extends Panel { public Afficheur() { setFont(new Font("SansSerif", Font.PLAIN, 24)); } public void paint(Graphics g) { Date d = new Date(); String s = court.getState() ? sansDate.format(d) : avecDate.format(d); g.clearRect(0, 0, getSize().width, getSize().height); g.drawString(s, 20, 35); } } public void run() { for (;;) { afficheur.repaint(); try { Thread.sleep(1000); } catch(InterruptedException e) { } } } public Version6() { super("Version 6"); setSize(500, 100); court = new Checkbox("Format court"); afficheur = new Afficheur(); Panel commande = new Panel(); commande.add(court); add(afficheur, BorderLayout.CENTER); add(commande, BorderLayout.SOUTH); setVisible(true); Thread t = new Thread(this); t.start(); } }