Bonjour à tous, bon ca fait déjà un bout de temps que je galère pour trouver la solution donc je m'en remet au savoir de ce forum

Donc voilà je m'explique sur mon problème.

J'ai une fenetre avec 2 JPanel dedans, un JPanel qui contient des boutons et un autre qui contient un JScrollPane qui contient un JLabel dans lequel j'ai une image.

Afficher l'image dès le début a pas été un problème. Mon soucis en fait c'est que je ne veux pas que mon image s'affiche dès le début mais qu'elle s'affiche qu'après que j'ai cliqué sur mon bouton. Autre précision, mon image se crée quand je clique sur le bouton. Dans le code ci-dessous, j'ai fait comme ci elle existait déjà mais en fait elle se crée qu'après traitement quand je clique sur mon bouton.

Voici mon code source :

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import javax.swing.*;
 
import java.awt.*;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import java.io.*;
import java.awt.image.BufferedImage;
 
 
public class Fenetre extends JFrame {
 
     JLayeredPane lp; 
     JPanel graph, boutons;
 
    public Fenetre() {
        super();
 
        setTitle("Définition des tâches");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Toolkit k = Toolkit.getDefaultToolkit();
 
   	Dimension tailleEcran = k.getScreenSize();
 
   	int largeurEcran = tailleEcran.width;
 
   	int hauteurEcran = tailleEcran.height;
 
	lp=new JLayeredPane();        
        lp.setPreferredSize(new Dimension(largeurEcran,hauteurEcran));
 
        graph = new JPanel();
        boutons = new JPanel();
 
        JLabel image_graph = new JLabel(new ImageIcon("test.gif"));  // Je met l'image ici mais j'aimerais la faire afficher après le click sur mon bouton
 
        JScrollPane pictureScrollPane = new JScrollPane(image_graph);
        pictureScrollPane.setPreferredSize(new Dimension(largeurEcran-10, 3*(hauteurEcran/4)-150));
        graph.add(pictureScrollPane); 
        boutons.add(new JButton(new FONCTION()));
 
        // On définit la taille de chaque JPanel dans la fenetre
	graph.setBounds(0,(hauteurEcran/4)+50,largeurEcran,3*(hauteurEcran/4)-90);
	boutons.setBounds(0,hauteurEcran/4,largeurEcran,50);
 
	// On rajoute tous les JPanel au JLayeredPane
	lp.add(boutons);
	lp.add(graph);
	getContentPane().add(lp); 
 
        pack();
    }
 
    private class FONCTION extends AbstractAction {
 
        private FONCTION() {
            super("Afficher image");
        }
 
        public void actionPerformed(ActionEvent e) {
 
       	}
    }
 
    public static void main(String[] args) {
	Toolkit k = Toolkit.getDefaultToolkit();
 
   	Dimension tailleEcran = k.getScreenSize();
 
   	int largeurEcran = tailleEcran.width;
 
   	int hauteurEcran = tailleEcran.height;
 
 
 
	JFrame frame = new Fenetre();
 
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
	frame.setSize(largeurEcran,hauteurEcran);
 
	frame.setLocation(0,0);
 
	frame.setVisible(true);
	frame.setExtendedState(Frame.MAXIMIZED_BOTH);
    }
 
    // main et autres fonctions
}
C'est un peu à l'arrache, si vous avez des conseils je suis preneur.

Merci d'avance.