Se connecter / S'enregistrer
Votre question

[java - interface] probleme rafraichissement + textAera

Tags :
  • Java
  • Programmation
Dernière réponse : dans Programmation
10 Avril 2006 14:15:34

Bonjour,

J'ai deux petits problemes sur mon application Java concernant mon interface :

Le premier est un probleme de rafraichissement, lorsque je clique sur un bouton de mon menu, je remplace l'ancien JPanel par le nouveau JPanel dans le JFrame (contenant en plus du JPanel, le menu).
Le changement s'effectue mais si on ne bouge pas a un peu les dimensions de la fenetre (pour rafraichir), rien ne s'affiche..........une fois qu'un JPanel a été affiché une fois correctement, il s'affiche bien apres (et avant de fermer l'appli bien sur).

Voici le code que j'ai mis mais ca ne change rien :

public void actionPerformed(ActionEvent e)
{
if(e.getSource()==boutonAjoutStructure)
{
if(unPanelPrincipal.getComponentZOrder(formulaireSlide)==-1)
{
unPanelPrincipal.removeAll();
unPanelPrincipal.add(laBarreMenu,BorderLayout.NORTH);
unPanelPrincipal.add(formulaireSlide,BorderLayout.CENTER);

unPanelPrincipal.repaint();
formulaireSlide.repaint();
}
}


Mon deuxieme probleme vient de mon TextAera, lorsque je met du text trop loin horizontalement, la grandeur du textAera augmente horizontalement avec. De même pour quand je descend trop bas, le textAera augmente en hauteur.

Pour l'horizontal, j'ai trouvé une méthode (setLineWrap(true);) mais j'ai rien trouvé pour l'horizontal.
J'ai declaré mon textAera comme ca :

JTextArea text= new JTextArea(5,20);


Merci d'avance
a+

Autres pages sur : java interface probleme rafraichissement textaera

a b L Programmation
10 Avril 2006 19:14:16

Bon ça fait un moment que je n'ai plus toché au Java, mais il me semble que le repaint ne fait que poster un message de repaint qui peut donc être diféré voire pas pris en compte pour optimisation.
Je crois qu'il faut appeler la méthode update() qui efface tout et donc réaffiche ce qu'il faut.
Mais attention, du coup, tu perds l'optimisation. Donc le mieux serait de redéfinir la méthode paint de ton objet si tu veux bien optimiser ton affichage par rapport à ton application.
Sinon pour la taille, tu mets ton objet dans layout ?
Sinon as-tu essayé de régler le setMaximumSize() pour mettre une taille maximale à ton textarea ?
11 Avril 2006 09:53:04

Bonjour,

Merci, pour le rafraichissement, update fonctionne (dans mon cas, pour l'instant, j'ai pas vraiment besoin d'optimiser donc c'est bon).

Concernant, mon TextArea, j'ai essayé le maximumSize et divers autres methodes mais je n'y arrive.
Le textArea est dans un GridBagLayout avec comme contraintes un Remainder( car c'est mon dernier element) et un HORIZONTAL pour qu'il s'etende sur son espace (mais meme si je le retire c'est pareil).

merci encore
a+
Contenus similaires
a b L Programmation
11 Avril 2006 19:16:48

Fixe les 3:
setMinimumSize()
setMaximumSize()
setPreferredSize()
(surtout les 2 derniers)

et si ça ne marche toujours pas, ajoute le setColums() et setRows() fixés à une certaine valeur.
Sinon essaie de jouer sur les layouts.
13 Avril 2006 13:16:49

Merci,

Pour regler le probleme, il fallait mettre setPreferredSize(), le TextArea ne bouge pas mais si on ecrit du texte avec une hauteur il n'est pas visible.... (les lignes depassant la hauteur du JTextArea ne sont pas visible)

J'ai donc ajouté une JScrollPane, mais elle ne fonctionnait pas avec le JTextArea.

En fait, pour mon probleme il fallait mettre le JScrollPane sans setPreferredSize.
(Il me semblait pourtant que j'avais deja essayer le JScrollPane mais bon maintenant ca marche ;-) )


JScrollPane barreVerticale = new JScrollPane(texteTxtSaisie);
add(barreVerticale,sesContraintes);



Merci beaucoup a toi !
a+
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS