J'essai actuellement de modifier le splash screen de Romain Guy pour le transformer en fenetre de chargement de logiciel (comme pour la suite Adobe par exemple).
Durant le temps de chargement ca se connecte en font à une BD, ca charge des fichiers textes, etc...
Le but du jeu c'est de pouvoir afficher un petit texte du style "Connexion à la base de données" sur la fenetre de chargement, bien sur mise à jour au fur et à mesure du chargement.
Donc dans mon Jwindow je pensais integrer un JLabel que je remet à jour en temps reel.
Apres parcours et recherche sur le net je comprend qu'il faut que j'ajoute mon Jlabel en premier pour l'avoir en premier plan, que les Jwindow se comporte comme des containers donc normalement pas de soucis!
Seulement voila je n'arrive pas à afficher mon texte

Vous allez dire que j'ai fais une enorme erreur (j'en ai honte d'avance) mais ca fait que 2 jours que je me suis mis sur java

Mon code :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
public class ShadowedWindow extends JWindow {
 
    private BufferedImage splash = null;
 
    public ShadowedWindow(BufferedImage image) {
        createShadowPicture(image);
    }
 
    public void paint(Graphics g) {
        if (splash != null) {
            g.drawImage(splash, 0, 0, null);
        }
    }
 
    private void createShadowPicture(BufferedImage image) {
    	int width = image.getWidth();
        int height = image.getHeight();
        int extra = 14;
 
//Début ajout Jlabel
        JLabel lbl = new javax.swing.JLabel();
        lbl.setText("Démarage du programme");
        getContentPane().add(lbl, BorderLayout.SOUTH);
//Fin ajout Jlabel
 
        setSize(new Dimension(width + extra, height + extra));
        setLocationRelativeTo(null);
 
        Rectangle windowRect = getBounds();
 
        splash = new BufferedImage(width + extra, height + extra, BufferedImage.TYPE_INT_ARGB);
 
        Graphics2D g2 = (Graphics2D) splash.getGraphics();
 
        try {
            Robot robot = new Robot(getGraphicsConfiguration().getDevice());
            BufferedImage capture = robot.createScreenCapture(new Rectangle(windowRect.x, windowRect.y, windowRect.width + extra, windowRect.height + extra));
            g2.drawImage(capture, null, 0, 0);
        } catch (AWTException e) { }
 
        BufferedImage shadow = new BufferedImage(width + extra, height + extra, BufferedImage.TYPE_INT_ARGB); 
        Graphics g = shadow.getGraphics();
        g.setColor(new Color(0.0f, 0.0f, 0.0f, 0.3f));
        g.fillRoundRect(6, 6, width, height, 12, 12);
 
        g2.drawImage(shadow, getBlurOp(7), 0, 0);
        g2.drawImage(image, 0, 0, this);
 
    }
 
    private ConvolveOp getBlurOp(int size) {
        float[] data = new float[size * size];
        float value = 1 / (float) (size * size);
        for (int i = 0; i < data.length; i++) {
            data[i] = value;
        }
        return new ConvolveOp(new Kernel(size, size, data));
    }
}
Si vous pouvez m'aider je suis preneur parce que j'ai testé plein de choses (rajouter des containers, avec ou sans layout, etc.) et je ne suis arrivé à rien...