10
votes

Java Swing: Jsplitpane Split Deux composants Taille égale au démarrage

J'utilise jsplitpane inclut deux jscrollpane de chaque côté. Je ne sais pas comment les faire à la taille des égaux au démarrage. Voici mon code principal: xxx

J'ai utilisé splitpane.setdividerlocation (getwidth () / 2); mais toujours sans effet.

S'il vous plaît tel moi comment résoudre ce problème.

Pour plus de détails. Voici mon code complet: xxx

merci :)


3 commentaires

À moins que vous sachiez la taille que le conteneur parent sera avant la main, il n'y a pas de manière réelle de savoir, mais, en fonction de votre exemple, essayez de définir l'emplacement du séparateur après l'avoir ajouté au conteneur ...


Essayez de définir les lignes et la largeur de votre JTextarea et voir si cela fonctionne. JTextarea InputTextarea = Nouveau JTextarea (10, 30) ou quelque chose de similaire pour les deux.


@peeskillet j'ai essayé. mais n'a toujours pas changé


3 Réponses :


1
votes

Initialement getwidth () La taille est 0 . Ajouter splitpane.setdividerlocation (getwidth () / 2); après SETVisible (true) . Essayez, xxx


5 commentaires

Comme quand je déboguise. après misvisible (). GetWidth () semble une taille réelle. Mais il n'existe toujours aucun effet que les deux JscrollBar apparaissent à la même taille.


Je ne comprends pas ton problème. Toujours séparateur non situé au milieu?


Oui :(. J'ai mis à jour mon message pour avoir le code de vue complet. Vous pouvez y jeter un coup d'oeil. J'ai bien peur que parce que parce que je concevons la mise en page.


@HQT, regardez votre fond de code complet. Vous avez ajouté deux splitpane.setdividerlocation (..); . Supprimer le dernier.


ah. Je suis désolé. J'ai ajouté cette ligne pour vérifier si la méthode setdividiplacement () fonctionne ou non. Enlevez-le, ne gagnez toujours aucun résultat :(



9
votes

Je vous ai raison pour vous. J'ajoute ça; xxx

et je me suis débarrassé du setdviderlocation () en bas

définit initialement la propriété Redimentation Wieght. Les valeurs sont de 0,0 à 1,0, un pourcentage de double valeur pour diviser le volet. Il y a beaucoup de choses à exercer des tailles préférées et de telle que je lisais à propos de didacticiel JSplitpane < / a>, vous pouvez donc vérifier pour vous-même.


1 commentaires

+1, @HQT, mais vous devez savoir que cela affecte également le redimensionnement après que le cadre soit également visible.



6
votes

Cela dépend vraiment du comportement exact que vous souhaitez pour le volet Split.

Vous pouvez utiliser: p> xxx pré>

lorsque vous créez le volet Split. Cela affecte la manière dont l'espace est attribué à chaque composant lorsque le volet Split est redimensionné. Alors au démarrage, il sera 50/50. Lorsque le volet de division a augmenté de taille, l'espace supplémentaire sera également divisé 50/50; P>

splitPane.setDividerLocation(.5f);


2 commentaires

Comme @peeSkillet utilise: D Merci pour plus claire Expliquer: D


@HQT Cette réponse est correcte, plusieurs fois Q & A ici, doivent être enveloppés dans invoquater