Bonjour à tous,
J'ai une application développé en swing qui envoit des requêtes vers un site internet. Parfois cette attente peut durer quelques secondes et je souhaite afficher une image au milieu de la fenetre qui indique un message avec une animation (un gif animé).
Je me suis donc orienté vers un objet JWindow qui vient par dessus toutes les autres fenêtres et qui contient un objet Gif (trouvé sur le forum :p) qui dérive d'un JPanel.
Malheureusement, lorsque j'execute le code, je n'ai qu'une bande grise qui s'affiche (de la taille de l'animation en fait), mais c'est tout
Voici le code :
Classe Gif
Et voici le contenu de la JWindow :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JPanel; @SuppressWarnings("serial") public class Gif extends JPanel { private Image img; public Gif (String path) { try { img = ImageIO.read(getClass().getClassLoader().getResourceAsStream(path)); setSize(img.getWidth(null), img.getHeight(null)); repaint(); } catch (IOException e) { e.printStackTrace(); } } protected void paintComponent(Graphics g) { // efface le contenu précédent : g.setColor(Color.RED); g.fillRect(0, 0, this.getWidth(), this.getHeight()); // dessine le gif : g.drawImage(img, 1, 1, img.getWidth(null), img.getHeight(null), this); } }
Ca fait un petit moment que je suis dessus, sans vraiment pouvoir avancer... Avez-vous une idée ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class SplashScreen extends JWindow { private Gif gif; public SplashScreen(String pathToImage) { // Affichage du splashScreen gif = new Gif(pathToImage); setSize(gif.getWidth()+20, gif.getHeight()+20); setLocationRelativeTo(null); setVisible(true); setAlwaysOnTop(true); //update(getGraphics()); }
Partager