ezaki
Messages postés7Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 5 avril 2006
-
2 juin 2004 à 21:14
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
3 juin 2004 à 20:14
salut, la je suis raiment mal!!! j ai un gros probleme.
en fait, je fait un scrabble, et j ai fait la partie graphique.
dans cette partie, y a des composants swing comme JButton et des elements paint.
kan je bouge ou je reduis la fenetre, ce qui a dans la fenetre disparait. je dois mettre ca dans un buffer. mais je sais pas du tout utiliser.
j ai regarde un peu les exemples ici, et j ai trouve une petite methode qui consiste a mettre les parties paint dans une image. ce qui permet de bouger la fenetre sans alterer le plateau du jeu. le probleme c'est que cette image vient se poser au dessus de mes JButton et Jlabel!!!
alors comment faire????? la je suis paume, j ai tout essaye sans trouver la solution. plsss help!!! je dois rendre mon projet vendredi:(
voici le code de ma classe (qui utilise d'autres classes):
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 2 juin 2004 à 21:44
exemple pour des label
JLabel label1 = new JLabel()
JLabel label2 = new JLabel()
//constructeur ac initialisation du label
//dans ton paint
JLabel[] tablabel = {label1, label2};
for (int i = 0; i < tablabel .length; i++) {
Rectangle rect2 = tablabel [i].getBounds();
Graphics glabel = g.create(rect2.x, rect2.y, rect2.width, rect2.height);
tablabel [i].paint(glabel);
}
normalement ac cette methode ton souci ne devrai plus se poser
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 2 juin 2004 à 21:46
sinon fait ta partie graphique dans une classe héritant de java.awt.Canvas
apres pour l'ajouter a un conteneur c comme pour les boutton label et j'en passe
ezaki
Messages postés7Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 5 avril 2006 2 juin 2004 à 22:05
ta premiere mathode est geniale!!!!
seul b-mol, c'est qu'en fait, kan je fait ta methode pour deux boutons, il me les place un peu decales par rapport aux boutons derriere l'image, et donc kan je click dessus ca marche pas, il faut clicker sur les boutons en arriere plan!
comment ca se fait ce decalage???
Vous n’avez pas trouvé la réponse que vous recherchez ?
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 2 juin 2004 à 22:10
canvas c un composant comme les boutton etc.... a la difference kil sert a dessiner sans avoir a redefinir le paint() de ta frame ou autre donc tt dessins et repaint des dessins se gere dans ton canvas
un conteneur c genre les panel jpanel textpane etc......
perso j'obterai plus pour la solution du canvas
import java.awt.Canvas;
import java.awt.Graphics;
public class dessinCanvas extends Canvas{
public Dimension preferredSize (){ return new Dimension (getSize().width, getSize().height); }
public Dimension minimumSize (){ return preferredSize(); }
public void paint(Graphics g) {
//ici tu fais tes dessins
}
}
//dans la class de ta frame
private dessinCanvas dc = new dessinCanvas();
//dans le constructeur initialise dc a ton gout
//et ajoute le
conteneur.add(dc);
ezaki
Messages postés7Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 5 avril 2006 2 juin 2004 à 22:12
finalement, merci beaucoup!!!!! tu me sauve la vie:)
j'ai juste fait un ptit decalage en x et en y pour superposer l'image et l'element:)
voici la ptite modification.
encore merci pour ton aide, la je respire:)
ezaki
Messages postés7Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 5 avril 2006 3 juin 2004 à 04:24
import java.awt.Canvas;
import java.awt.Graphics;
public class dessinCanvas extends Canvas{
public Dimension preferredSize (){ return new Dimension (getSize().width, getSize().height); }
public Dimension minimumSize (){ return preferredSize(); }
public void paint(Graphics g) {
//ici tu fais tes dessins
}
}
//dans la class de ta frame
private dessinCanvas dc = new dessinCanvas();
//dans le constructeur initialise dc a ton gout
//et ajoute le
conteneur.add(dc);
concernant ce code, je pige pas bien en fait.
dans la partie paint du canvas, il faut mettre aussi les boutons et labels??? dans ce cas faut aussi redefinir tous les boutons en partie privee du canvas.
et puis l'actionperformed des boutons, on les mets ou? toujours dans le canvas?? je suis un peu largue la
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 3 juin 2004 à 20:14
tu trouvera l'explication d'un canvas dans la doc java......fo la lire qd meme :-p
sinon non tu ne dessine que tes graphique dans le canvas. Vois les canvas comme le paint d'une frame mais dans un composant plutôt que dans une frame sont paint n'ecrasera pas tes boutons label et autre de plus un canvas a c propre event et listener regarde dans la doc ac un peu de chance tu comprendra son utilité et le gain de memoire par rapport a la premiere methode