Bonjour,

Je vais essayé d'explique le + clairement mon problème:

Je dois réaliser un Puzzle, qui sera "fabriqué" à partir d'une image que l'on choisira dans l'explorer.

J'ai une JFrame (la fenêtre principale) qui contient 2 JPanel.
Celui de gauche contient 2 JScrollPane et 1 JPanel.

Ce que je voudrais, c'est que dans un de ces 2 JscrollPane, l'image que l'on sélectionne s'affiche dans celui-ci.

J'ai dans ma JFrame une barre de menu, qui permet d'accéder à une fenêtre (Popup) avec un bouton parcourir. Quand l'on clic sur ce JButton, un JFileChooser s'ouvre. Quand on clic sur un fichier image, le chemin de l'image s'affiche bien dans la zone de texte de la Popup, mais quand je clic sur OK, je ne sais pas comment afficher l'image dans le JScrollPane.

Voici le code du JPanel dans lequel je souhaite insérer l'image:

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
public class Image extends JScrollPane{
 
    public JScrollBar barreImageH;
    public JScrollBar barreImageV;
 
    public Image(){
 
        this.setBorder(BorderFactory.createLineBorder(Color.gray));
 
        barreImageH = new JScrollBar();
        barreImageH.setOrientation(0);
        barreImageV = new JScrollBar();
 
 
        this.setVerticalScrollBar(barreImageV);
        this.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        this.setHorizontalScrollBar(barreImageH);
        this.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
 
    }
 
    /*public void Afficher(Icon icone){
 
        JPanel mon_image = new JPanel();
        JLabel label = new JLabel(icone);
        mon_image.add(label);
        mon_image.setVisible(true);*/
 }
}
Voici le code de ma fenêtre Popup:

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
91
92
93
94
95
96
97
98
99
100
101
102
103
public class Popup extends JDialog{
 
    String titre;
    JTextField fichier;
    JTextField nbPieces;
    GridBagConstraints gridBagConstraints;
    JButton parcourir;
    JButton annuler;
    JButton OK;
    JTextArea texte1;
    JTextArea texte2;
    JLabel image;
    ImageIcon icon;
    JPanel mon_image;
    public PopupEcouteur e;
 
    public Popup(String titre){
 
        this.titre = titre;
        this.getContentPane().setBackground(Color.white);
        this.setVisible(true);
        this.setSize(400,300);
        this.setLayout(null);
 
 
        parcourir = new JButton("Parcourir");
        annuler = new JButton("Annuler");
        OK = new JButton("OK");
 
        //Centre la popup par rapport à l'écran
        this.setLocationRelativeTo(this.getParent());
        this.show();
        this.setTitle(titre);
 
        fichier = new JTextField("");
        fichier.setBackground(Color.white);
 
        fichier.setBounds(75, 100, 150, 20);
        this.add(fichier);
 
        nbPieces = new JTextField(6);
        nbPieces.setBackground(Color.white);
 
        nbPieces.setBounds(240,125,75,20);
        this.add(nbPieces);
 
        parcourir.setBounds(230,100,100,20);
        this.add(parcourir);
 
        annuler.setBounds(170,235,100,20);
        this.add(annuler);
 
        OK.setBounds(280,235,100,20);
        this.add(OK);
 
        JTextArea texte1 = new JTextArea();
        texte1.setBounds(125,80,160,15);
        texte1.append("Charger l'image à découper:");
        this.add(texte1);
 
        JTextArea texte2 = new JTextArea();
        texte2.setBounds(125,127,110,15);
        texte2.append("Nombre de pièces:");
        this.add(texte2);
 
        ImageIcon icon = new ImageIcon("icone.gif");
        JLabel img = new JLabel(icon);
        img.setBounds(0, 40, 150, 150);
        this.add(img);
 
 
        this.e = new PopupEcouteur(this);
        annuler.addMouseListener(e);
        OK.addMouseListener(e);
        parcourir.addMouseListener(e);
 
        }
 
    public JButton getAnnuler() {
        return annuler;
    }
 
    public void setParcourir(JButton annuler) {
        this.annuler = annuler;
    }
 
    public JButton getParcourir() {
        return parcourir;
    }
 
    public void setOuvrir(JButton parcourir) {
        this.parcourir = parcourir;
    }
 
    public JButton getOK(){
        return OK;
    }
 
    public void setOK(JButton OK) {
        this.OK = OK;
    }
 
}
Et voici le code de mon écouteur:

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
public class MenuEcouteur extends MouseAdapter{
 
 
    private Menu menu;
    Popup popup;
 
    public MenuEcouteur(Menu menu){
        this.menu=menu;
    }
 
 
 
    public void mousePressed(MouseEvent e) {        
        if(e.getSource().equals(menu.getQuitter())){
            System.exit(0);
        }
 
        if(e.getSource().equals(menu.getOuvrir())){
            popup = new Popup("Choix de l'image et du nombre de pièces");
 
        }
 
    }
 
 
}
Je sais c'est très long, mais j'vois pas tellement comment expliquer ça clairement sans montrer le code.