Dessiner triangle

Résolu
Jah73 Messages postés 8 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 19 avril 2012 - 19 avril 2012 à 12:38
Jah73 Messages postés 8 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 19 avril 2012 - 19 avril 2012 à 15:24
Bonjour à tous

Je développe une application et j'ai besoin d'aide.

En gros, je fais choisir à l'utilisateur un .bin via un JFileChooser et s'il y a dans le même dossier un .root, qu'il m'affiche un triangle vert pour dire que le fichier est présent

Pour l'instant je voudrais qu'il affiche le triangle vert dès que je clique sur "ok" du JFileChooser.

J'ai crée une classe TraceTriangle que j’appelle dans if d'une autre classe :

if (retour == JFileChooser.APPROVE_OPTION){ //Si "ok"

pathFile.setText(chooser.getSelectedFile().getAbsolutePath());
TraceTriangle t = new TraceTriangle();
}

Mais je dois mal m'y prendre :/

Pouvez-vous m'aider à tracer ce fichu triangle ?

Merci d'avance,

Jah

9 réponses

cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 12
19 avril 2012 à 13:49
ptet un soucis de rafraichissement, si tu appelles invalidate() juste avant de sortir du if?
ou si tu changes la taille de ta fenetre (via la souris, pas via le code ^^)?
3
Jah73 Messages postés 8 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 19 avril 2012
19 avril 2012 à 15:24
J'ai fait : pan.updateUI(); et ca fonctionne !

Merci beaucoup pour ton aide cormandyr !
3
Jah73 Messages postés 8 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 19 avril 2012
19 avril 2012 à 12:43
En fait même en faisant :

if (retour == JFileChooser.APPROVE_OPTION){ //Si "ok"

pathFile.setText(chooser.getSelectedFile().getAbsolutePath());
JTextField tf = new JTextField("TEST JTEXTFIELD");
tf.setPreferredSize(new Dimension(550, 550));
this.pan.add(tf);
}
Ca ne m'affiche rien
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 12
19 avril 2012 à 13:06
Salut,

quand tu dis que ça ne t'affiche rien, tu veux dire qu'il ne passe pas dans ton if??
si tu mets un sortie console, rien ne sera mis en console?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jah73 Messages postés 8 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 19 avril 2012
19 avril 2012 à 13:44
Salut cormandyr,

Si si, il passe bien dans ma boucle mais je n'arrive pas a afficher un Jtextfield ou autre en +
0
Jah73 Messages postés 8 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 19 avril 2012
19 avril 2012 à 15:04
Merci pour tes réponses cormandyr !!

Alors si je fais :

if (retour == JFileChooser.APPROVE_OPTION){ //Si "ok"
pathFile.setText(chooser.getSelectedFile().getAbsolutePath());
JTextField tf = new JTextField("TEST JTEXTFIELD");
tf.setPreferredSize(new Dimension(550, 550));
this.pan.add(tf);
invalidate();

}

Rien ne se passe;

Par contre, si je redimensionne ma fenêtre, mon TextField apparaît !!

Une idée pour rafraîchir mon JPanel ?
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 12
19 avril 2012 à 15:13
pan.invalidate()...

this.pan.add(tf);

qu'est-ce qui est représenté par le this?
0
Jah73 Messages postés 8 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 19 avril 2012
19 avril 2012 à 15:19
Désolé, j'avais fait un copié collé du constructeur

Ca ne marche toujours pas

if (retour == JFileChooser.APPROVE_OPTION){ //Si "ok"
pathFile.setText(chooser.getSelectedFile().getAbsolutePath());
JTextField tf = new JTextField("TEST JTEXTFIELD");
tf.setPreferredSize(new Dimension(550, 550));
pan.add(tf);
pan.invalidate();
}


Par contre, si je redimensionne, il apparaît :/
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 12
19 avril 2012 à 15:23
il reste pas des tonnes de solutions avec les info qu'on a...

pan.setvisible(true);
ou mais c'est assez lourd :
pan.repaint();
0