Ajouter des Canvas ds JScrollPane - Java - Programmation
Marsh Posté le 11-12-2003 à 14:24:38
personne c m'aider?
AIDER MOIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
Marsh Posté le 11-12-2003 à 19:37:08
c ma question ki est pas clair ou vous boycoter mon topic?
Marsh Posté le 11-12-2003 à 22:37:08
J'ai pas compris.
Je soupçonne que tu as besoin de la méthode repaint(), mais comme je ne saisis pas ta formulation, tu me pardonneras cette réponse.
Marsh Posté le 12-12-2003 à 00:11:13
g réussi a résoudre le problem mais now ... g un prob
quand j'ajoute au fur et a mesure les canvas... bah... v mettre une img ca ira plus vite
donc wala si klk un c me dire cmt ne pas modifier le contenu de tout a la fois mais just du dernier ke je viens d'ajouter ... pcq je comprend pas
Marsh Posté le 12-12-2003 à 06:54:28
Modifier le contenu ? C'est quoi le contenu ? C'est "380 :: age :: ville" ? Putain parle clairement, on comprends rien à ton problème.
Marsh Posté le 12-12-2003 à 12:49:18
ben en fait les bloc bleu avec ecrit 380 :: age :: ville je les ajoute progressivement en clikant sur le bouton et le 380 c un int et ilc ommence a 20 ... et normalement il devrait ecrire 20 pi 40 pi 60 l'un en dessous de l'autre ... mais là il ecrit 20 puis 40 mais le 20 et réécrit en 40 ... donc sur l'image ya des 380 partout :s et je comprend pas comment lui dire de pas modifier tout ceux qu'il a ajouter ...
Marsh Posté le 12-12-2003 à 14:01:18
Tu utilises i, qui est un entier public. comment évolues i ?
Clairement, si tu fais i += 20; le résultat est normal, puisque ce que tu fais, c'est dire comment l'élément doit être dessiné. A l'instant t, si i vaut 380, tous tes éléments écrivent 380.
Marsh Posté le 12-12-2003 à 14:19:35
ah ok ... ben i est de type static car il est appeler dans couleur() depuis la frame principale...
moi j'aimerais qu'il bouge pas mais vu que mon but c de lui passer une string qu'il l'écrit et qu'elle bouge plus ... c pas trop ca lol
ya moyen de dire de pas tout redessiner mais seulement dessiner le dernier ajouter?
Marsh Posté le 13-12-2003 à 10:17:02
canvas ca reste un peu flou pour moi...
Marsh Posté le 14-12-2003 à 08:25:24
_Dim_ a écrit : ah ok ... ben i est de type static car il est appeler dans couleur() depuis la frame principale... |
Aïe !
Bon, alors primo : tu ne peux pas demander à une partie de ton interface ne pas se redessiner, la méthode paint() est par construction appelée par exemple lorsque une fenêtre masque ton programme.
Deuxio, i ne peut pas être static. C'est une caractéristique de ton canvas, ça n'a aucun sens d'en faire une variable static.
Tertion, je ne sais pas ce que tu comptes faire de ton Canvas, mais parti comme c'est parti, j'affirme assez volontiers que ce n'est pas la classe qu'il te faut. Jète un coup d'oeil sur JList.
Marsh Posté le 14-12-2003 à 12:10:01
ben les jList c bien joli mais c bien moche ossi lol ... ce ki est pratique avec paint c que tu peux dessiner de la couleur que tu veux ect et que avec le JList c'est une autre paire de manche... fin... tant pis alors
mais chuis sur que ya moyen
Marsh Posté le 14-12-2003 à 12:16:23
Bien sûr qu'il y a moyen, avec Canvas pourquoi pas.
Seulement, ton code est manifestement mauvais. i ne doit pas être static, c'est incompatible avec ton problème. En revanche, si tu tiens à garder i tel qu'il est, chaque Canvas doit disposer d'une copie de i, ayant la valeur que i avait lors de l'instantiation du Canvas.
Marsh Posté le 14-12-2003 à 13:12:16
en fait g capté... je déclarais la string ki allait contenir le i dans la methode paint() et now je l'ai déclaré avant et il garde l'ancienne valeur ds les anciens
merci pour tout
Marsh Posté le 14-12-2003 à 14:59:12
Voilà, c'est une manière de faire. En somme la copie de i dont je te parlais figure dans l'objet String. C'était une possibilité.
Marsh Posté le 14-12-2003 à 18:16:03
merci bien en tout cas
now v essayer d'ajouter des listeners dessus ... mais c pas gagner
Marsh Posté le 10-12-2003 à 23:05:32
bon alors voilà g fait un tit prog a la con pour tester un truc...
betement pour ajouter des label progressivement ds un JScrollPane
tout tourne nikel avec le code suivant
void jButton1_mouseClicked(MouseEvent e) {
Canvas huhu = new couleur();
JLabel jLabel2 = new JLabel();
i=i+jLabel2.HEIGHT+13;
jLabel2.setHorizontalAlignment(SwingConstants.LEADING);
jLabel2.setHorizontalTextPosition(SwingConstants.LEADING);
jLabel2.setText(" "+i+" " );
jLabel2.setVerticalAlignment(SwingConstants.BOTTOM);
jLabel2.setVerticalTextPosition(SwingConstants.BOTTOM);
jPanel1.setPreferredSize(new Dimension(0,i));
jPanel1.add(jLabel2);
jScrollPane1.validate();
JScrollBar sbv = jScrollPane1.getVerticalScrollBar();
sbv.setValueIsAdjusting( true );
sbv.setValue( sbv.getMaximum() );
}
}
mais now j'aimerais a la place d'ajouter des labels, rajouter des canvas ki serait de ce type
public class couleur extends Canvas {
public void paint (Graphics g){
String pseudo = " "+Cadre1.i+" ";
g.drawRect(0, 0, 160, 15);
g.setColor(new Color(238, 241, 179));
g.fillRect(1, 1, 159, 14);
g.setColor(Color.black);
g.setFont(new java.awt.Font("Verdana", 1, 10));
g.drawString(pseudo + " :: age :: ville", 4, 12);
}
}
le seul prob c ke kan je fait jPanel1.add(new couleur()); bah il le dessine une fois ... mais les ajoutes pas au fur et a mesure l'un en dessous de l'autre et les superposes meme pas sur le premier dessiner
si klk un pouvais m'expliker la subtiliter a faire pour réussir l'enroule ...
dsl si ca parait logik pr certain :s
merci d'avance
Message édité par _Dim_ le 11-12-2003 à 17:02:06