1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
package IHM;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
/**
*
*/
public class PanneauHorloge extends JPanel {
private String heure = "";
private Font fonte ;
public PanneauHorloge() {
super();
fonte = new Font(Font.MONOSPACED, Font.BOLD | Font.ITALIC, 96) ;
}
@Override
public void paint(Graphics g){
int x = 48 ;
int y = 96 ;
g.setColor(Color.black);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.setFont(fonte);
g.setColor(Color.RED);
g.drawString(heure, x, y);
}
public void setHeure(String heure) {
this.heure = heure;
repaint() ;
}
}
package IHM;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
*
* L'interface est construite avec un PanneauHorloge,
* une dérivée de JPanel
*
*/
public class FenetrePrincipale extends JFrame{
public FenetrePrincipale(){
// Paramétrage de la JFrame
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Horloge");
this.setMinimumSize(new Dimension(600,170));
this.setLocation(100, 100);
this.setResizable(false);
this.setVisible(true);
//instanciation et paramétrage du JPanel
PanneauHorloge panHorloge = new PanneauHorloge();
// Ajout du JPanel dans la JFrame
this.add(panHorloge);
// "Compactage" de la JFrame
this.pack();
// instanciation de l'écouteur d'évènement
ActionListener ecouteur = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
panHorloge.setHeure(df.format(Calendar.getInstance().getTime()));
}
};
// instanciation du Timer Swing
javax.swing.Timer t = new javax.swing.Timer(1000, ecouteur);
// SetinitialDelay fixe le délai avant l'envoi du premier évènement, ici 100 milliseconde
t.setInitialDelay(100);
// Lance le Timer qui émettra un évènement toute les 1000 milliseconde
t.start();
}
} |
Partager