Heim > Java > javaLernprogramm > Warum überlappen sich nicht veränderbare Fenster, wenn sie nebeneinander positioniert sind?

Warum überlappen sich nicht veränderbare Fenster, wenn sie nebeneinander positioniert sind?

Susan Sarandon
Freigeben: 2024-12-11 08:41:13
Original
944 Leute haben es durchsucht

Why Do Non-Resizable Windows Overlap When Positioned Adjacent to Each Other?

Nicht veränderbare Fensterrandpositionierung: Herausforderungen und Lösungen

Im Bereich der Fensterverwaltung stoßen Entwickler bei dem Versuch oft auf ein verwirrendes Problem Positionieren Sie nicht veränderbare Fenster nebeneinander. In dieser Situation scheint die setLocation-Methode die Abmessungen des Fensterrahmens falsch zu berechnen, was zu überlappenden Rändern führt.

Um dieses Problem zu veranschaulichen, betrachten Sie den folgenden Codeausschnitt:

import java.awt.Rectangle;
import javax.swing.JFrame;

public class FrameBorders {
  public static void main(String[] args) {
    JFrame frame1 = new JFrame("frame 1");
    JFrame frame2 = new JFrame("frame 2");

    frame1.setResizable(false);
    frame2.setResizable(false);

    frame1.setVisible(true);        
    Rectangle bounds = frame1.getBounds();      
    frame2.setLocation(bounds.x+bounds.width, bounds.y);
    frame2.setVisible(true);
  }
}
Nach dem Login kopieren

Wenn Windows Aero ist Wenn diese Option aktiviert ist, ist der zweite Frame (Frame2) falsch positioniert und überlappt den Rand des ersten Frames. Dies liegt daran, dass die setLocation-Methode die nicht veränderbare Größe der Fenster nicht berücksichtigt.

Man könnte spekulieren, dass es sich bei diesem Verhalten um einen Fehler handelt, aber es ist tatsächlich eine potenzielle Problemquelle bei der Arbeit mit nicht veränderbaren Containern. Angenommen, Sie passen die Grenzen des Containers so an, dass er auf Ihrer Plattform optimal aussieht. Wenn der Container jedoch auf einer anderen Plattform mit einer Schriftart mit anderen Metriken angezeigt wird, kann der Text verdeckt werden.

Daher ist es beim Ändern der Grenzen eines nicht größenveränderbaren Containers wichtig, sicherzustellen, dass alle vorhanden sind Textinhalte bleiben unabhängig von der Standardschriftart der Hostplattform sichtbar. Um dies zu erreichen, können Sie Techniken wie die Berechnung der Zeichenfolgenbreite mithilfe von FontMetrics und das entsprechende Festlegen der Containergröße verwenden.

Das obige ist der detaillierte Inhalt vonWarum überlappen sich nicht veränderbare Fenster, wenn sie nebeneinander positioniert sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage