2009-05-21 5 views
0

In meiner App habe ich einige längliche Etiketten, auf einem chinesischen OS die Etiketten überlaufen und andere Komponenten auch hinausschieben. Dies wurde nur auf einem chinesischen Betriebssystem beobachtet. Wie kann ich überlaufende Komponenten erkennen und behandeln?Handhabung von überlaufenden Komponenten in der Schaukel

Antwort

0

Ich vermute, dass dies ein Problem für einige ist, abhängig von der Fenstergröße und Sprache.

Vielleicht nicht, was Sie wollen, aber Sie können die Größe des Textes wie folgt überprüfen:

// 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); 

Wenn der Text länger als eine Grenze ist (Sie müssen aus einem Hut ziehen,) können Sie kürzen oder vielleicht sogar abkürzen - wenn es bekannt ist, oder ersetzen Sie es möglicherweise durch ein Symbol und verwenden Sie einen Tooltip, um den vollständigen Text anzuzeigen.

+0

Dies ist die beste Lösung für meine Zwecke. Es ist ein Etikett überfüllt, aber es gibt auch ein titelborder überfüllt. Also, myComponent.getFontMetrics (font) zu verwenden und Tooltip einzufügen, wenn über eine bestimmte Länge funktioniert gut, wenn auch nicht ideal. –

1

JComponent hat eine setMaximumSize Methode, die Ihnen helfen könnte. Abhängig vom verwendeten LayoutManager können die Ergebnisse abweichen. Um Einschränkungen wie diese auf Layout-Ebene festzulegen, überprüfen Sie die SpringLayout.

0

Sie können festlegen, dass sich eine JTextArea wie eine Beschriftung mit ein wenig extra Code verhält, aber den Text bei Bedarf mit Zeilenumbrüchen (...) umschließt. Entwerfen Sie Ihre Benutzeroberfläche mit Blick auf die Verpackung.

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