Maison >Java >javaDidacticiel >Comment positionner correctement les JFrames non redimensionnables avec du texte visible dans Windows Aero ?

Comment positionner correctement les JFrames non redimensionnables avec du texte visible dans Windows Aero ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-09 05:35:13834parcourir

How to Correctly Position Non-Resizable JFrames with Visible Text in Windows Aero?

Bordure et positionnement de la fenêtre non redimensionnable

Problème

Lors de la création de JFrames non redimensionnables, la méthode setLocation ne semble pas prendre correctement en compte la fenêtre bordure si Windows Aero est activé. Les frontières se chevauchent donc. Le comportement est comme prévu si Aero est désactivé ou si les appels setResizing sont supprimés.

Cause

Le problème survient lors de la définition des limites d'un conteneur non redimensionnable. Les modifications apportées aux limites peuvent rendre le texte invisible en fonction des paramètres de police spécifiques à la plate-forme de l'utilisateur.

Solution

L'approche correcte pour définir les limites d'un conteneur non redimensionnable consiste à garantir que tout texte reste visible quelle que soit la police par défaut de la plateforme hôte. Ceci peut être réalisé en ajustant les limites en fonction de la largeur en pixels de la chaîne et de la hauteur du conteneur.

Par exemple, le code suivant calcule la largeur en pixels de la chaîne à l'aide de calculateStringWidth et définit la taille du cadre en conséquence :

JLabel label = new JLabel(s + "3, 1, 4, 1, 5, 9", JLabel.LEFT);

int w = SwingUtilities.computeStringWidth(
    label.getFontMetrics(label.getFont()), s);
int h = f.getHeight();
f.setSize(w, h);
f.setResizable(false);

Cela garantit que le texte est visible quels que soient les paramètres de police sur la plateforme de l'utilisateur.

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