Passage d'un applet à un élément d'interface
Bonjour,
depuis quelques jours j'essaie de faire un timer pour un jeu d'échec (qui décrémente jusqu'à arriver à un temps de 0), mais je rencontre quelques difficultés.
J'ai tout d'abord orienté mes recherches vers google et regardé quelques codes de simples horloges, essayé de les simplifier etc... En général je tombe sur des applets, alors que je veux juste insérer mon Timer dans un JTextField non éditable, dans une interface type Swing.
En gros j'ai vu 2 solutions :
- l'utilisation du constructeur Timer(int, actionListener) : problème, Eclipse dit ne pas connaitre ce constructeur, et j'ai cru comprendre qu'il bloquait la fenêtre tant qu'il était éxécuté.
- l'utilisation de thread, j'ai eu du mal à comprendre, et pareil j'ai l'impression que ça bloque, mais pas sur non plus.
bref, voici le code que j'ai le plus réduit, sous forme d'applet, et qui donne une horloge en format texte. J'aimerais juste que l'on m'aide à passer d'un applet à un élément insérable dans une interface.
Code:
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
|
package Clock;
import java.applet.Applet;
import java.awt.*;
import java.util.Date;
public class clock extends Applet implements Runnable {
private Thread thclock;
MediaTracker tracker;
public int CurrHour;
public int CurrMin;
public int CurrSec;
Image offScreenImage;
Graphics offScreen;
public void paint(Graphics g)
{
offScreen.clearRect(0, 0, 100, 50);
Date date = new Date();
CurrSec = date.getSeconds();
CurrMin = date.getMinutes();
CurrHour = date.getHours();
offScreen.drawString(""+CurrHour+":"+CurrMin+":"+CurrSec, 15, 15);
g.drawImage(offScreenImage, 0, 0, this);
}
public void start()
{
thclock = new Thread(this);
thclock.start();
}
public void run()
{
do
try
{
paint(getGraphics());
Thread.sleep(100L);
}
catch(InterruptedException _ex) { }
while(true);
}
public void init()
{
offScreenImage = createImage(200, 200);
offScreen = offScreenImage.getGraphics();
}
} |
Merci