Question

développé un jeu pendant un certain temps, et actuellement travaillez l'interface graphique, ou du moins essayer de. Avait le problème massif de ne pas être en mesure de redimensionner le cadre (sans problème), que je ne comprenais pas les gestionnaires de mise en page très bien. Quelques projets plus tard, et le temps de revenir et faire un peu plus sur le jeu, et je frappe un problème ...

La structure de base du châssis principal est, mainPane, contenant une gameScrollPane et une controlpanel. Le volet de défilement est un volet de défilement, et le panneau de commande d'un panneau normal. Le volet de défilement contient le panneau principal du jeu.

Comme je voulais le volet de défilement pour prendre la majeure partie de l'écran, avec le panneau de commande en prenant une petite partie inférieure, la même que de nombreux Sim comme les jeux, donc nous avons choisi la mise en page de frontière pour le mainPane. J'ai ajouté le volet de défilement et définissez les contraintes centre et le panneau de commande supplémentaire et constriants SUD. Cela n'a pas montré le volet de défilement, je joue autour d'essayer différentes contraintes, et il semble que seulement quand je mets la contrainte de panneau de défilement vers le Nord, est-il afficher du tout.

Pour démontrer cela, je l'ai créé une vidéo rapide ... http://screenjel.ly/q5RjczwZjH8

Comme vous pouvez le voir, quand je change la valeur du NORD au centre et re courir, il est comme son pas là!

Les points bonus pour tous ceux qui peuvent voir un deuxième problème clair que je peux commencer une autre question après ce problème est résolu!

Je vous remercie de votre temps pour lire.

Merci d'avance pour des idées ou pensées:)

Rel

Était-ce utile?

La solution

Je ne peux pas obtenir la vidéo à afficher. Il a été mise en mémoire tampon pour les âges.

Je dirais que le scrollpane est en fait garnissant le centre; il est juste votre panneau de jeu qui ne sont pas affichés.

Votre panneau de jeu doit renvoyer des valeurs raisonnables pour getPreferredSize().

Mise à jour

Une autre chose que vous pouvez faire est d'avoir votre panneau de jeu implémenter l'interface Scrollable. Vous pouvez ensuite passer outre getScrollableTracksViewportWidth et ...height pour revenir true si votre panneau sera forcé aux dimensions du ScrollPane.

Autres conseils

Si vous souhaitez un code à posté commencer alors vous pourriez avoir obtenu une réponse très rapide. Heureusement, vous avez publié un lien dans les commentaires à l'autre réponse.

Les choses setContentPane () est bizarre, surtout après avoir fait certaines choses à ce qui sera ensuite s'anéanties. Cependant, ce n'est pas votre problème.

Le problème est que vous ajoutez levelMaker et personMover droit à mainPane sans aucune contrainte. Ceux-ci seront ensuite souffler loin tout ce que vous définissez CENTER ... dans ce cas, le gameScrollPane précédemment défini.

Voilà pourquoi vous voyez pour NORD et pas CENTRE.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top