Bonjour,
j'ai un problème d'affichage d'images. Je sais comment afficher une image dans un panel et tout ce qui va avec. Seulement mon problème est que mon application ne doit pas afficher l'image à son lancement, mais uniquement lorsque l'on clique sur un bouton. Or, quand je clique sur ce bouton, l'image ne vient pas s'afficher dans le panel. Si je redimensionne la fenêtre après avoir cliqué sur ce bouton, l'image s'affiche correctement. Cela semble être donc un prob de rafraîchissement ( pourtant je fais un panel.repaint...)
Voici le code de ma fenêtre principale:
Merci d'avance de vos réponses
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
104
105
106
107 package ch.hearc.camtracker; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.rmi.Naming; class CamTracker extends JFrame implements ActionListener { // Variables declaration Jpanel pnAffichage; ... //------Constructeur de la fenêtre---------------------------------------- public CamTracker() { //Création des composants cbServer1 = new JComboBox(); .... //Création et ajout du menu jMenuBar1.add(jMenuFile); ... setJMenuBar(jMenuBar1); //Taille et position des composants pnAffichage.setBounds(10,10,352,288); ... //Ajout des composants aux panels pnZone.add(btnCapture); pnZone.add(btnOk); pnZone.add(pnAffichage); ... //Disposition des panels pnHaut.setLayout(new BorderLayout()); pnHaut.setPreferredSize(new Dimension(600,300)); pnBas.setLayout(new BorderLayout()); pnBas.setPreferredSize(new Dimension(600,300)); pnHaut.add(pnZone,BorderLayout.CENTER); pnBas.add(pnModule,BorderLayout.CENTER); getContentPane().setLayout(new BorderLayout()); getContentPane().add(pnHaut,BorderLayout.NORTH); getContentPane().add(pnBas,BorderLayout.SOUTH); //Ajout un écouteur sur les éléments btnCapture.addActionListener(this); btnOk.addActionListener(this); } /* *Méthode de traitement des événements générés par les composants munis d'un écouteur */ public void actionPerformed(ActionEvent ev) { if(ev.getSource() == btnCapture) { ... } if(ev.getSource() == btnOk) { GrayImage l_objGray = null; try { //instanciation de l'objet distant: (adresse du module inversion) l_objGray = (GrayImage)Naming.lookup("rmi://157.26.98.2/" + "MyGrayImage"); //Invocation de la méthode distante: (méthode remote de inversion) //getObject retourne un arraybyte ImageIcon im = new ImageIcon(l_objGray.getObject()); JLabel label1= new JLabel(im); pnAffichage.add(label1); pnAffichage.repaint(); } catch(Exception e) { System.out.println("Gray exception : " + e.getMessage()); e.printStackTrace(); } } } //-------------------------------------------------------------------------- public static void main(String args[]) { System.out.println("Starting CamTracker..."); CamTracker mainFrame = new CamTracker(); mainFrame.setSize(600, 600); mainFrame.setTitle("CamTracker"); mainFrame.setVisible(true); } }
Partager