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é :
- un qui attend le temps voulu pour l'affichage du splash screen, puis qui lance le second thread
- l'autre qui rend invisible la frame
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();
//centre le splash screen
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension labelSize = l.getPreferredSize();
setLocation(screenSize.width / 2 - (labelSize.width / 2),
screenSize.height / 2 - (labelSize.height / 2));
//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();
}
-----------------------------------------------------------------------------------------------
Voici mon code
-----------------------------------------------------------------------------------------------
import java.awt.*;
import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class Bisson extends JFrame implements MouseListener
{
private static final long serialVersionUID =1L;
/*************************** Déclarations Champs de Texte
*******************************/
static JTextField zone_nom;
static JTextField zone_prenom;
static JTextField zone_adresse;
static JTextField zone_code_postal;
static JTextField zone_ville;
static JTextField zone_telephone;
/***********************************Déclarations Boutons
********************************/
static JButton bouton_facture;
static JButton bouton_devis;
static JButton bouton_commande;
/********************************* Etiquette - Label - Image
******************************/
static JLabel logo;
static JLabel version;
static JLabel facture;
static JLabel devis;
static JLabel commande;
/************************************* 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);
bouton_facture.addMouseListener(this);
bouton_devis.addMouseListener(this);
bouton_commande.addMouseListener(this);
//On rend la fenetre lisible
setVisible(true);
}
public void mouseClicked(MouseEvent e) {}
//Invoked when a mouse button has been pressed on a component.
public void mousePressed(MouseEvent e) {}
//Invoked when a mouse button has been released on a component.
public void mouseReleased(MouseEvent e) {}
//Invoked when the mouse enters a component.
public void mouseEntered(MouseEvent e) {}
//Invoked when the mouse exits a component.
public void mouseExited(MouseEvent e) {}
//Permet l'execution du programme
public static void main(String[] args){
new Bisson();
}
}