JSplitpane... mouvement lors d'un changement de composant
omcougar
Messages postés152Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention 8 octobre 2008
-
4 sept. 2006 à 17:45
DrakeRoxas -
16 août 2013 à 15:52
Bonjour
ici pas vraiment de probleme technique... je sus juste en quete de faire qq chose de plus propre
j'ai un JSplitPane contenant 2 objet
lorsque je change celui de droite, le divider se déplace...
je me dépeche donc de le remettre en place mais a l'affichage ce n'est pas tres jolicar on voit les fenteres bouger une fraction de seconde.
j'aimerais pouvoir geler l'affichage, faire mes modif et relancer le rafraichissement de l'affichage.
pour l'intant ce que j'ai trouvé de moins moche est de masquer le splitpane changer de composant et reafficher... ca fait clignoter l'affichage mais on ne voit pas les images se redimenssioner.
splitPane.setVisible(
false);
splitPane.setRightComponent(Mon nouveau composant
);
splitPane.setDividerLocation(150);
splitPane.setVisible(
true);
A voir également:
JSplitpane... mouvement lors d'un changement de composant
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 4 sept. 2006 à 19:35
Salut,
essais de le passer en double buffer (tonSplit.setDoubleBuffered(true))
setDoubleBuffered
public void setDoubleBuffered(boolean aFlag)
Sets whether the this component should use a buffer to paint.
If set to true, all the drawing from this component will be done
in an offscreen painting buffer. The offscreen painting buffer will
the be copied onto the screen.
Swings painting system always uses a maximum of one double buffer.
If a
Component
is buffered and one of its ancestor
is also buffered, the ancestor buffer will be used.
<dd><dd><dl> * Parameters: : <dd>
aFlag
- if true, set this component to be double buffered
</dd></dl>defois ca aide pour les clignottement
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
omcougar
Messages postés152Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention 8 octobre 20081 5 sept. 2006 à 09:34
ouiiiiii mais non :)
en fait j'ai essayé ca aussi... mais en ce moment le clignitement est du au fait que je cache / affiche le split avec splitPane.setVisible(false/true
); avant et apres mes modifs pour masquer le fait que les fentere se redimentionnent ce qui est tres laid mais qui entraine un cligniottement (forecement c'est moi qui masque le split)
donc la meilleur solution serait de bloquer le redimentionnement auto des fenetres
ou a defaut de figer l'affichage
mais bon c'est juste pour faire plus clean
Vous n’avez pas trouvé la réponse que vous recherchez ?
Je viens d'avoir exactement le même problème mais je l'ai résolu :
Tu crée un classe qui hérite du JSplitPane et tu redéifinis la fonction setRightComponent. Résultat :
public class SplitPane extends JSplitPane
{
public SplitPane (int orientation_split) {
super(orientation_split);
super.setDividerSize(7); // Je trouve le split trop gros
super.setDividerLocation(150);
}
public void setRightComponent(Component comp)
{
super.setRightComponent(comp);
super.setDividerLocation(150);
}
}