Maison >Java >javaDidacticiel >Comment centrer avec précision un JFrame redimensionnable et détecter les collisions avec ses bords ?
Résoudre le positionnement exact du centre dans un JFrame redimensionnable
Votre requête présente deux défis : une détection précise des collisions avec les bords du cadre et la détermination du centre exact, quelle que soit la taille de l'écran.
Détection de collision Correction
Le décalage de 10 pixels observé lors de la détection de collision provient probablement d'une mauvaise compréhension des dimensions du cadre. Un JFrame comprend une bordure, un JRootPane et d'autres composants autour du volet de contenu réel. Par conséquent, vous devez ajuster vos calculs pour tenir compte de la largeur et de la hauteur de la bordure.
Pour obtenir la région exacte à peindre, utilisez la formule :
Width - border.width Height - border.height
Détermination exacte du centre de l'écran
Pour trouver le centre exact de l'écran, considérez le suivants :
Le choix de la valeur à utiliser dépend de votre objectif :
Méthode de centrage du Cadre
Pour centrer facilement le cadre sur l'écran, appelez Window#setLocationRelativeTo(null).
Vous pouvez également utiliser la formule suivante :
JFrame frame = ...; Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int x = (screenSize.width - frame.getWidth()) / 2; int y = (screenSize.height - frame.getHeight()) / 2; frame.setLocation(x, y);
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!