2009-05-21 6 views

Répondre

0

Je suppose que c'est un problème pour certains, en fonction de la taille de la fenêtre et de la langue.

Peut-être pas ce que vous voulez, mais vous pouvez vérifier la taille du texte comme celui-ci:

// get metrics from the graphics 
FontMetrics metrics = graphics.getFontMetrics(font); 
// get the height of a line of text in this font and render context 
int hgt = metrics.getHeight(); 
// get the advance of my text in this font and render context 
int adv = metrics.stringWidth(text); 

Si le texte est plus long qu'une limite (vous devez tirer d'un chapeau,) vous pouvez tronquer ou peut-être même l'abréger - si elle est connue, ou éventuellement le remplacer par une icône et utiliser une info-bulle pour afficher le texte intégral.

+0

Ceci est la meilleure solution pour mes fins. Il y a une étiquette qui déborde, mais il y a aussi un débordement de titre. Donc, en utilisant myComponent.getFontMetrics (police) et l'insertion d'info-bulle si une certaine longueur fonctionne bien, mais pas idéal. –

1

JComponent a une méthode setMaximumSize qui pourrait vous aider. Selon le LayoutManager que vous utilisez, les résultats peuvent être différents. Pour définir des contraintes de ce type au niveau de la mise en page, vérifiez le SpringLayout.

0

Vous pouvez faire en sorte que JTextArea se comporte comme une étiquette avec un peu de code supplémentaire, mais il encapsulera le texte au besoin au lieu d'abréger avec une ellipse (...). Concevez votre interface utilisateur avec emballage en tête.

JTextArea label = new JTextArea(); 
label.setText(text); 
label.setWrapStyleWord(true); 
label.setLineWrap(true); 
label.setEnabled(false); 
label.setOpaque(false); 
Questions connexes