pb d'affichage image [JAVA] - Programmation
Marsh Posté le 22-01-2002 à 11:45:07
balance ton code stp
Marsh Posté le 22-01-2002 à 11:50:35
///class principale Frame
public class ChatRoom extends Frame {
private FlagIcon trackSelect[] = new FlagIcon[Tracks.TRACKS_NB];
private TrackIcon iconShow;
private GridBagConstraints flagsGBC;
public ChatRoom () {
setLayout(new GridBagLayout());
setLocation(200,0);
iconShow = new TrackIcon(0);
add(iconShow, iconShow.GBC);
pack();
setVisible(true);
}
public void selectTrack (int trackNumber) {
iconShow.update(trackNumber);
}
}
class TrackIcon extends Canvas {
private static String fileName;
private static Image pic;
private static int trackNumber;
public static GridBagConstraints GBC;
public static final int WITDH = 451;
public static final int HEIGHT = 280;
public TrackIcon(int idx) {
trackNumber = idx;
GBC = new GridBagConstraints();
GBC.gridx = 1;
GBC.gridy = 0;
GBC.gridwidth = 1;
GBC.gridheight = 1;
GBC.fill = GridBagConstraints.NONE;
GBC.anchor = GridBagConstraints.CENTER;
GBC.ipadx = WITDH;
GBC.ipady = HEIGHT;
GBC.weightx = 0;
GBC.weighty = 0;
repaint();
}
public void paint(Graphics g) {
fileName = Tracks.iconsDir + Tracks.tracksName[trackNumber] + ".jpg";
pic = getToolkit().getImage(fileName);
g.drawImage(pic, 0, 0, WITDH, HEIGHT, null);
}
public void update(int idx) {
trackNumber = idx;
repaint();
}
}
C'est la fonction main dans une autre classe qui créé une instance de ChatRoom.
[edtdd]--Message édité par jupiler--[/edtdd]
Marsh Posté le 22-01-2002 à 12:05:28
Ok je crois que j'ai trouvé. Faut mettre l'objet courant comme Image Observer au moment de dessiner l'image, j'avais mis null
Marsh Posté le 22-01-2002 à 12:09:56
jupiler a écrit a écrit : Ok je crois que j'ai trouvé. Faut mettre l'objet courant comme Image Observer au moment de dessiner l'image, j'avais mis null |
et oui
Marsh Posté le 22-01-2002 à 11:40:55
salut,
je crée un ou plusieurs objets Canvas.
je dessine une image dans paint() (drawImage...)
mais l'image n'apparait pas directement à l'exécution, je suis obligé de cacher la fenêtre de l'appli puis de la réafficher pour voir ce que je veux.
et quand je fais un repaint(), c'est la meme chose. Il faut cacher puis remontrer la fenêtre pour rafraîchir.
Quelqu'un saurait d'ou ca peut venir?
---------------
Je ne suis ni pour, ni contre, bien au contraire