Maison >Java >javaDidacticiel >Comment centrer parfaitement une fenêtre d'application et son contenu sur un écran redimensionnable ?

Comment centrer parfaitement une fenêtre d'application et son contenu sur un écran redimensionnable ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-02 11:51:10125parcourir

How to Perfectly Center an Application Window and its Contents on a Resizable Screen?

Comment centrer une fenêtre d'application sur un écran redimensionné

Votre question implique deux défis : aligner un objet rebondissant dans un JFrame et déterminer le centre exact d'un écran redimensionnable.

Partie 1 : Aligner un objet rebondissant dans un JFrame

D'après votre description, il semble que l'objet rebondissant déraille d'environ 10 pixels. Cet écart est probablement dû à l'idée fausse selon laquelle la largeur et la hauteur d'un JFrame incluent uniquement la zone client (où vous dessinez). En réalité, un JFrame se compose d'un frame, d'un JRootPane, d'un JLayeredPane et du volet de contenu. Par conséquent, la zone pouvant être peinte est plus petite que les dimensions du JFrame.

Pour en tenir compte, ajustez les limites de l'objet en soustrayant la largeur de la bordure de la largeur et de la hauteur du JFrame.

Partie 2 : Détermination du centre exact de l'écran

Déterminer le centre d'un écran redimensionnable nécessite de considérer à la fois le les dimensions du cadre et les dimensions du volet de contenu.

  • Du point de vue du cadre, le centre est à 50 % de la largeur et de la hauteur du cadre.
  • Du point de vue du volet de contenu, le centre est à 50 % de la largeur et de la hauteur du volet de contenu.

En fonction de vos besoins, vous pouvez utiliser le point central du cadre ou du volet de contenu.

  • Pour centrer le cadre sur l'écran, utilisez la méthode Window#setLocationRelativeTo(null).
  • Pour aligner votre dessin dans le volet de contenu, utilisez les dimensions du volet de contenu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn