romainbisson
Messages postés88Date d'inscriptionjeudi 25 octobre 2007StatutMembreDernière intervention 9 septembre 2014
-
6 juin 2008 à 08:45
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
6 juin 2008 à 20:47
Bonjour,
J'aimerais faire un Splash Screen avant l'ouverture de mon programme, j'ai deja fait l'image de ce splash screen. donc jai trouvé une source mais je ne vois comment l'integrer a mon code
Voici une classe qui peux vous etre utilile si vous désirez afficher un splash screen ( écran de démarrage ) en swing.
Cette classe prend en parametres le nom du fichier image que vous voulez afficher, la frame qui va s'afficher, et le temps jusqu'a ce quelle soit rendue invisble.
Deux thread sont lancé :
<li>un qui attend le temps voulu pour l'affichage du splash screen, puis qui lance le second thread
</li><li>l'autre qui rend invisible la frame
</li>
package main;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JWindow;
import javax.swing.SwingUtilities;
@SuppressWarnings("serial") class SplashWindow extends JWindow {
public SplashWindow(String filename, Frame f, int waitTime) {
super(f);
//cree un label avec notre image
JLabel l = new JLabel(new ImageIcon(filename));
//ajoute le label au panel
getContentPane().add(l, BorderLayout.CENTER);
pack();
//rend le splash screen invisible lorsque l'on clique dessus
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
setVisible(false);
dispose();
}
});
//afin d'acceder à la valeur WaitTime
final int pause = waitTime;
//thread pour fermer le splash screen
final Runnable closerRunner = new Runnable() {
public void run() {
setVisible(false);
dispose();
}
};
Runnable waitRunner = new Runnable() {
public void run() {
try {
Thread.sleep(pause);
//lance le thread qui ferme le splash screen
SwingUtilities.invokeAndWait(closerRunner);
} catch (Exception e) {
e.printStackTrace();
}
}
};
//affiche le splash screen
setVisible(true);
//lance le thread qui ferme le splash screen apres un certain temps
Thread splashThread = new Thread(waitRunner, "SplashThread");
splashThread.start();
}
/************************************* Image de fond
*******************************/
static Image fond;
//
**************************************************************************************
// PREMIER CONSTRUCTEUR
//
**************************************************************************************
public Bisson(){
//On donne un titre à la fenetre
super("Bisson Informatique");
//Cette opération est réalisé lors de la fermeture de la fenetre
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
//Taille de la fenetre 1024*768
setBounds(0,0,1024,768);
//La fenetre n'est pas redimensionable
setResizable(false);
ImageIcon icon = new ImageIcon("images/logo.jpg");
logo = new JLabel();
logo.setIcon(icon);
logo.setBounds(40,250,450,300);
/**** bouton facture *****/
bouton_facture = new JButton();
bouton_facture.setIcon(new ImageIcon("images/icone.gif"));
bouton_facture.setBounds(100,50,120,120);
facture = new JLabel("Facture");
facture.setForeground(Color.blue);
facture.setFont(new Font("Helvetica", Font.PLAIN, 20));
facture.setBounds(130,170,80,40);
/**** bouton devis *****/
bouton_devis = new JButton();
bouton_devis.setIcon(new ImageIcon("images/icone.gif"));
bouton_devis.setBounds(300,50,120,120);
devis = new JLabel("Devis");
devis.setForeground(Color.blue);
devis.setFont(new Font("Helvetica", Font.PLAIN, 20));
devis.setBounds(335,170,80,40);
/**** bouton commande *****/
bouton_commande = new JButton();
bouton_commande.setIcon(new ImageIcon("images/icone.gif"));
bouton_commande.setBounds(500,50,120,120);
commande = new JLabel("Commande");
commande.setForeground(Color.blue);
commande.setFont(new Font("Helvetica", Font.PLAIN, 20));
commande.setBounds(510,170,120,40);
version = new JLabel("Version 1.0");
version.setForeground(Color.blue);
version.setFont(new Font("Helvetica", Font.PLAIN, 28));
version.setBounds(870,700,200,50);
setResizable(false);
//création du container
JLabel container = new JLabel();
// chargement de l'image
ImageIcon background = new ImageIcon("images/fond.jpg");
//on s'assure que l'image soit bien chargée
background.getImage();
// charge l'image
container.setIcon(background);
//changement du layout (pour reprendre ce que tu as fait
container.setLayout(null);
//ajout des composants
container.add(bouton_facture);
container.add(facture);
container.add(bouton_devis);
container.add(devis);
container.add(bouton_commande);
container.add(commande);
container.add(logo);
container.add(version);
//ajout du container
setContentPane(container);
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 6 juin 2008 à 08:55
Salut:
Java 1.6 intégre la classe SpalshScreen, qui a l'apport de se lancer au démarrage de l'application avant même que la JVM démarre.
Référence: (Documentation Java 1.6) "The splash screen can be created at application startup, before the Java Virtual
Machine (JVM) starts. The splash screen is displayed as an undecorated window
containing an image."
romainbisson
Messages postés88Date d'inscriptionjeudi 25 octobre 2007StatutMembreDernière intervention 9 septembre 2014 6 juin 2008 à 10:08
Ok,
moi je veux juste que le programme prenne une image dans image/splah.jp et ensuite l'affiche pendant 5s aux dimensions 400*400 avant mon programme, car je conprend rien a ton lien, je pense que c'est tro compliqué pour ce que je veux faire
Vous n’avez pas trouvé la réponse que vous recherchez ?
romainbisson
Messages postés88Date d'inscriptionjeudi 25 octobre 2007StatutMembreDernière intervention 9 septembre 2014 6 juin 2008 à 14:26
ok, sa a l'air cool mais je vourdais l'integrer a mon programma que j'ai poster et je compile avec esclipse donc je n'ai de ligne de commande, il doit connaitre le fichier tout seul