Maison >Java >javaDidacticiel >Comment positionner correctement les JFrames non redimensionnables avec du texte visible dans Windows Aero ?
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.
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.
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!