Interface graphique en java

Résolu/Fermé
loops - 16 avril 2005 à 23:01
 NakNak - 1 avril 2008 à 00:36
salut tout le monde,

tout d abord, le programme est en java
ensuite, j ai une fenetre graphique contenant un textfield, un bouton et une jinternalframe.
l utilisateur rentre une serie de chiffre. losque qu il clic sur le bouton un graphique s affiche dans la jInternalFrame correspondant aux valeurs du textfield.
la premiere fois le graphique s affiche bien (grace a la methhode updateUI() qui permet d actualise). mais si je rentre une autre serie de chiffres et que je reclic sur le bouton, le graphique ne se reactualise pas .j ai aussi essayer avec la methode repaint mais sans succes

j ai alors inserer un autre textfield ou je lis la valeur rentree dans le premier textfield (pou verifier): le changement s'effectue bien dans la textfield mais pas dans la jinternalfraME

comment faire
merci @+
loops
A voir également:

7 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
17 avril 2005 à 19:34
J'ai moi même galéré pendant 15 plombe pour trouver alors voici un petit coup de pouce :
Utilise la fonction revalidate comme cela :

Jpanel pane = new Jpanel();
....
Traitements
....

pane.revalidate();

Cette méthode permet d'indiquer au thread qui s'occupe de la gestion des evenements du java, qu'il faut actualiser le composant 'pane'.
Pour une frame ou une internaleFrame je pense que ca doit être la même méthode puisqu'il s'agit d'un composant de ta fenetre principale.

Voilà, redi moi ca.

@++
4
salut kij_82 et merci pour ta reponse,

j ai tout de suite teste ta solution. revalidate() exit bien avec ma jinternalframe mais elle ne s actualise tjrs po.
c est a ni rien comprendre!!!

auriez vous une autre solution?

merci
@+
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
19 avril 2005 à 21:29
Tu l'a bien mise au bon endroit ? fais voir ton code.
0
Si setSize ne marche pas, essaye : this.setPreferedSize(new Dimension(400, 300))
Des fois ça marche mieux ... mais j'vais pas donner trop d'aide, j'trouve le java assez lourd pour tout ça ...
2
salut,
bha je pense bien :


Canvas c = new repere(tabBin, compteur);
jInternalFrame1.restoreSubcomponentFocus();

jInternalFrame1.getContentPane().add(c);

jInternalFrame1.paint(c.getGraphics());

jInternalFrame1.revalidate();
jInternalFrame1.updateUI();

jInternalFrame1.repaint();

ca, ca se trouve dans le actionperformed du bouton.
repere construit mon graphique apres je le fou dans la frame et j actualise. mais ca marche qu une seule fois, le graphe ne se redessine pas.

merci
@+
1
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
19 avril 2005 à 23:03
Essaie ca entre tes lignes déjà écrites pour voir :

Canvas c = new repere(tabBin, compteur);
jInternalFrame1.restoreSubcomponentFocus();


jInternalFrame1.getContentPane().removeAll();

jInternalFrame1.getContentPane().add(c);

jInternalFrame1.paint(c.getGraphics());

0
yop yop kij_82

voila le debut de la classe avec les constructeur et une methode qui initialise la fenetre. mais je pense que le setSize() n est pas pris en compte. car qd le prog se lance il se lance pas en plain ecran!


public class tp2 extends javax.swing.JFrame {

public tp2() {
initfenetre();
initComponents();

}

private void initfenetre(){
Toolkit k = Toolkit.getDefaultToolkit();
Dimension tailleEcran = k.getScreenSize();
// int largeurEcran = tailleEcran.width;
//int hauteurEcran = tailleEcran.height;

setTitle("Encodage");
setSize(tailleEcran);
setLocation(80,80);
}


merci
@+
1
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
24 avril 2005 à 14:38
Essay un "setsize(700,1024);" à la place, et si ca change qqchose, alors c'est que tu emplois mal la classe toolkit. Je peux pas t'en dire plus car je ne connais pas cette classe et je n'ai pas le temps pour le moment d'y jeter un coup d'oeil, même bref alors ...

Bonne recherche
0

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

Posez votre question
salut
des cours sur interface graphique en langage java
1
aze
1
yop kij_82

merci pour ta reponse. je viens de tester et ca marche super bien

c cool, trop bien!!!!!

c est qd meme agreable ca, tu poses des questions, on trouve pas du premier coup, pis enfin apres une plus mure reflexion y a tt qui fonctionne. moi je dis c est de la balle

encore merci a kij_82

@+
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
21 avril 2005 à 18:55
De rien, j'ai galérer la dessus ya qq mois...

Ca fait plaisir de rendre service !
++
0
Loops > kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013
22 avril 2005 à 00:14
re kij_82
toi qui a l air de te demerder et de repondre a plein de questions

est ce que tu sais comment faire pour qu a l execution du programme ma fenetre et une taille bien definie?

g pourtant essaye de faire un setSize() mais il n etait po pris en commpte
j utilise netbeen et dans les preference de la fenetre je peux normalement regler la taille mais la case se trouve etre en grisee donc impossible de changer ma valeur et je pense que c est pour cette raison que le setSize() n est pas pris en compte!!

ca t es jamais arrive ca?? ce serai cool en tt cas ;-)

aller @+ et merci encore ca fait bien plaisir d avoir a faire a des gars comme toi!!
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857 > kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013
22 avril 2005 à 10:11
Met voir ton code de début, je veux dire celui de ta fenetre globale.

Est-ce que ta classe principale étant la classe JFrame ? Si non alors il faut qu'elle étande la classe JFrame, et dans le constructeur, tu met le
setsize(HAUT,LARG);

Que tu fais déjà, avec HAUT et LARG qui sont des attribut constant de ta classe :
private static final int HAUT = 700;
private static final int LARG = 1024;


Voilà, redit moi ca.

++
0