Bonjour,

Je cherche à développer une application pour lire des sons.

Voici le code que j'utilise mais lorsque je passe au dessus du bouton de lecture, je perd toute mon image de fond du JFrame !!

Pourquoi n'est -elle pas générée à chaque fois ?

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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
import javax.imageio.ImageIO;
import javax.swing.*;
 
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
 
class RecordPanel extends JPanel implements MouseListener{
 
	BufferedImage img1;
	BufferedImage img2;
	BufferedImage ImageBuffer;
	String imageFile1;
	String imageFile2;
 
 
  public RecordPanel() {
	  setBackground(Color.yellow);
	  SetImage();
     addMouseListener(this);
  }
 
  private void SetImage()
  {
		 try{
			 if(imageFile1 != null && imageFile1 != "") img1 = ImageIO.read(new File(imageFile1));
			 if(imageFile2 != null && imageFile2 != "") img2 = ImageIO.read(new File(imageFile2));
			 }
			 catch (IOException e) {
		     }
 }
 
  public void setImage1(String img1)
  {
	  imageFile1 = img1;
	  SetImage();
  }
 
  public void setImage2(String img2)
  {
	  imageFile2 = img2;
	  SetImage();
  }
 
  public void mouseClicked(MouseEvent me) {
  }
 
  public void mouseEntered(MouseEvent me) {
	  	if(ImageBuffer==null)
	  	{
	  		ImageBuffer=img1;
	  	}
	  	else
	  	{
	  		ImageBuffer=img2;
	  	}
	  	System.out.println(me.getX() + " - " + me.getY());
	    repaint();
  }
 
  public void mouseExited(MouseEvent me) {
	  	ImageBuffer=img1;
	    repaint();
  }
 
  public void mousePressed(MouseEvent me) {
 
  }
 
  public void mouseReleased(MouseEvent me) {
  }
 
  public void mouseDragged(MouseEvent me) {
  }
 
  public void mouseMoved(MouseEvent me) {
  }
  protected void paintComponent( Graphics g )
	{
		super.paintComponent( g );
		if( ImageBuffer == null )
		{
			ImageBuffer = img1;
		}
		g.drawImage( ImageBuffer, 0, 0, null );
 
	}
 
}
 
class FenLoad extends JFrame
{
	private RecordPanel LectureBtn;
	private RecordPanel PauseBtn;
	private RecordPanel StopBtn;
	private ImageIcon imIc ;
 
	public FenLoad()
	{
		imIc = new ImageIcon ("lecteur_audio_all_off.jpg");
 
		setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		c.fill = GridBagConstraints.BOTH;
 
		LectureBtn = new RecordPanel();
		LectureBtn.setImage1("lecteur_audio_lecture_on.jpg");
		LectureBtn.setImage2("lecteur_audio_lecture_off.jpg");
		LectureBtn.setPreferredSize(new Dimension (80,80));
		c.gridx=0;
		c.gridy=0;
		c.gridheight=100;
		c.gridwidth=100;
		add(LectureBtn, c);
	}
 
	public void paint(Graphics g)
	{
 
		g.drawImage(imIc.getImage(),0,0,null);
	}
 
}
 
 
public class LoadPanel {
 
 
	public static void main(String[] args) {
	JFrame fen = new FenLoad();
	fen.setBounds(200,200,200,150);
	fen.setVisible(true);
 
	}
}
Merci pour votre aide