Bonsoir,
Peut - on, a l'instar d'un JFrame, mettre une image de fond sur un JToolBar ?
J'ai suivi le fil des discussions concernant ce sujet mais je n'arrive pas à l'appliquer.
J'explique : J'ai une classe
qui appelle une classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part public Gui extends JFrame{}
J'ai fais plusieurs tests avec ce que j'ai trouvé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part public BToolBar extends JToolBar{}
Cela fonctionne très bien. Cependant, pour le besoin de mon prog, je passe la JFrame en paramêtre à d'autres classes. Dans le code suivant, je change juste le this en arpe (objet JFrame).
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 import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import javax.swing.JPanel; import javax.swing.JFrame; public class Dudule extends JFrame { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private Image image; /** * This is the default constructor */ public Dudule() { super(); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(300, 200); this.setContentPane(getJContentPane()); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("JFrame"); this.setVisible(true); } public void paint(Graphics g) { image=Toolkit.getDefaultToolkit().getImage("b.jpg") ; g.drawImage(image, 0, 0, this); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); } return jContentPane; } }
Et là, oh miracles oh damnations, ça ne marche plus.
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 import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import javax.swing.JPanel; import javax.swing.JFrame; public class Dudule extends JFrame { private static final long serialVersionUID = 1L; private JFrame arpe; private JPanel jContentPane = null; private Image image; /** * This is the default constructor */ public Dudule() { initialize(); } /** * This method initializes arpe * * @return void */ private void initialize() { arpe = new JFrame(); arpe.setSize(300, 200); arpe.setContentPane(getJContentPane()); arpe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); arpe.setTitle("JFrame"); arpe.setVisible(true); } public void paint(Graphics g) { image=Toolkit.getDefaultToolkit().getImage("b.jpg") ; g.drawImage(image, 0, 0, arpe); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); } return jContentPane; } }
Comment ce fait-ce ?
Merci beaucoup d'avance.
Bonne soirée
Partager