Heim >Java >javaLernprogramm >Wie positioniere ich nicht veränderbare JFrames mit sichtbarem Text in Windows Aero richtig?

Wie positioniere ich nicht veränderbare JFrames mit sichtbarem Text in Windows Aero richtig?

Linda Hamilton
Linda HamiltonOriginal
2024-12-09 05:35:13826Durchsuche

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

Fensterrahmen und -positionierung nicht veränderbar

Problem

Beim Erstellen nicht veränderbarer JFrames scheint die setLocation-Methode das Fenster nicht richtig zu berücksichtigen Rand, wenn Windows Aero aktiviert ist. Dadurch überlappen sich die Grenzen. Das Verhalten ist wie erwartet, wenn Aero deaktiviert ist oder wenn die setResizable-Aufrufe entfernt werden.

Ursache

Das Problem tritt auf, wenn die Grenzen eines nicht größenveränderbaren Containers festgelegt werden. Änderungen an den Grenzen können je nach den plattformspezifischen Schriftarteinstellungen des Benutzers dazu führen, dass Text unsichtbar wird.

Lösung

Der richtige Ansatz zum Festlegen der Grenzen eines nicht veränderbaren Containers besteht darin, sicherzustellen, dass jeder Text vorhanden ist bleibt unabhängig von der Standardschriftart der Hostplattform sichtbar. Dies kann erreicht werden, indem die Grenzen basierend auf der Pixelbreite der Zeichenfolge und der Höhe des Containers angepasst werden.

Zum Beispiel berechnet der folgende Code die Pixelbreite der Zeichenfolge mithilfe von „computeStringWidth“ und legt die Framegröße entsprechend fest:

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

Dadurch wird sichergestellt, dass der Text unabhängig von den Schriftarteinstellungen auf der Plattform des Benutzers sichtbar ist.

Das obige ist der detaillierte Inhalt vonWie positioniere ich nicht veränderbare JFrames mit sichtbarem Text in Windows Aero richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn