Heure systeme dans jframe

Soyez le premier à donner votre avis sur cette source.

Vue 11 722 fois - Téléchargée 1 293 fois

Description

Salut tt le monde, ce code en JAVA permet d'afficher l'heure de systéme dans une interface.

Source / Exemple :


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

class Heure extends JFrame
{
	private int heure,vraiHeure,min,seconde;
	private int[] x2={200,209,217,225,233,240,248,254,260,265,270,
					274,277,278,279,280,279,278,277,274,270,
					265,260,254,248,240,233,225,217,209,200,
					192,184,176,168,160,153,147,141,136,130,
					127,124,122,121,120,121,122,124,127,130,
					136,141,147,153,160,168,176,184,192};
	private int[] y2={70,71,72,74,77,80,86,91,97,103,110,
					118,126,134,142,150,159,167,175,183,190,
					197,204,209,214,220,224,227,228,229,230,
					229,228,227,224,220,214,209,204,197,190,
					183,175,167,159,150,142,134,126,118,110,
					103,97,91,86,80,77,74,72,71};
	private int[] Tx2={195,240,270,280,270,240,195,155,125,115,120,150};
	private int[] Ty2={70,80,110,155,195,225,240,225,195,155,115,80};
	private int[] Hx2={200,207,213,220,225,230,236,240,244,247,248,249,
					250,249,248,247,244,236,230,225,213,220,213,207,200,
					194,188,181,175,170,165,161,157,154,152,151,150,151,
					152,154,157,161,165,170,175,181,188,194};
	private int[] Hy2={100,101,102,104,107,111,115,120,125,131,138,144,150,
					157,163,170,175,181,186,190,194,197,198,199,200,
					199,198,197,194,190,186,181,175,170,163,157,150,144,
					138,131,125,120,115,111,107,104,102,101};
	private final int x1 = 200,y1 = 150;
	private boolean quar=true,demi=true,moinquar=true;
	
	public Heure()
	{
		super("Heure");
		setBounds(300,200,400,300);
		Container con = getContentPane();
		con.setLayout(null);
		Date date = new Date();
		System.out.println(Hx2.length);
		System.out.println(Hy2.length);
		setDefaultCloseOperation(this.EXIT_ON_CLOSE);
		heure = date.getHours();
		vraiHeure = heure;
		if(heure > 12)
			heure=(heure-=12)*4;
		min = date.getMinutes();
		seconde = date.getSeconds();
		if(min >= 15 && min < 30)
		{
			heure++;
			quar = false;
		}
		if(min >= 30 && min < 45)
		{
			heure+=2;
			quar = false;
			demi = false;
		}
		if(min >= 45)
		{
			heure+=3;
			quar = false;
			demi = false;
			moinquar = false;
		}
		System.out.println(vraiHeure+":"+min+" "+seconde);
		setVisible(true);
		setResizable(false);
		second();
	}
	
	public void paint(Graphics g)
	{
		g.clearRect(0,0,400,300);
		g.setColor(Color.orange);
		g.fillRect(100,50,200,200);
		g.setColor(Color.white);
		g.fillOval(100,50,200,200);
		g.setColor(Color.green);
		g.drawLine(x1,y1,x2[min],y2[min]);
		g.drawLine(x1,y1,Hx2[heure],Hy2[heure]);
		g.setColor(Color.red);
		g.drawLine(x1,y1,x2[seconde],y2[seconde]);
		g.setColor(Color.blue);
		g.drawString("12",Tx2[0],Ty2[0]);
		for(int i=1;i < 12;i++)
		{
			g.drawString(String.valueOf(i),Tx2[i],Ty2[i]);
		}
		g.setColor(Color.black);
		if(seconde<10&&min<10)
			g.drawString(vraiHeure+":0"+min+" 0"+seconde,180,270);
		if(seconde>=10&&min<10)
			g.drawString(vraiHeure+":0"+min+" "+seconde,180,270);
		if(seconde<10&&min>=10)
			g.drawString(vraiHeure+":"+min+" 0"+seconde,180,270);
		if(seconde>=10&&min>=10)
			g.drawString(vraiHeure+":"+min+" "+seconde,180,270);
	}
	
	private void second()
	{
		Thread sec = new Thread();
		while(true)
		{
			try
			{
				sec.sleep(1000);
			}catch(Exception err)
			{
			}
			if(seconde==59)
			{
				seconde = 0;
				if(min==59)
				{
					min = 0;
					if(heure==48)
					{
						heure = 0;
						vraiHeure = 0;
					}
					else
					{
						heure++;
						vraiHeure++;
					}
					quar=true;
					demi=true;
					moinquar=true;
				}
				else
				min++;
			}
			else
				seconde++;
			if(min >= 15 && min < 30 && quar)
			{
				heure++;
				quar = false;
			}
			if(min >= 30 && min < 45 && demi)
			{
				heure++;
				demi = false;
			}
			if(min >= 45 && moinquar)
			{
				heure++;
				moinquar = false;
			}
			repaint();
		}
	}
	
	public static void main(String[] args)
	{
		new Heure();
	}
}

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
293
Tu n'as pas besoin de gérer tout ca un new Date() suffit pour avoir l'heure, tu peux actualiser l'heure dans ton thred au lieu de la recalculer, en plus ton thread n'est pas précis du tout alors que ton horloge si.
Messages postés
14
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
9 mars 2011

La langue Française est en perdition,

On écris "Moins" et "Quart", de plus les commentaires sont plus qu'utiles pour rendre le code lisible.

Sinon le code marche, même si sa longueur est un peu excessive.
Messages postés
4
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
11 septembre 2007

j'ai été vraiment besoin de sovoir comment trouver la date système comment l'utiliser
Messages postés
300
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
9 juillet 2008
1
bonne source, il te reste à régler ton horloge "analogique" pour afficher l'heure actuelle, la numérique est bien réglée :)
bonne continuation
Messages postés
105
Date d'inscription
lundi 9 avril 2001
Statut
Membre
Dernière intervention
16 juillet 2008

Sympa en effet. Dommage que le graphisme scintille. Essaye d'intégrer du double buffering à ta classe !
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.