Heim > Java > javaLernprogramm > Wie zentriert man ein Rechteck innerhalb eines nicht veränderbaren Java-Frames richtig?

Wie zentriert man ein Rechteck innerhalb eines nicht veränderbaren Java-Frames richtig?

Linda Hamilton
Freigeben: 2024-12-05 04:51:14
Original
882 Leute haben es durchsucht

How to Properly Center a Rectangle within a Non-resizable Java Frame?

So zentrieren Sie ein Rechteck in einem Java-Frame

Problem:

In Java Sie haben einen rechteckigen Rahmen mit einer festen Größe von (800, 400) erstellt und ihn auf nicht veränderbare Größe eingestellt. Das mit den Koordinaten (50, 50, 700, 300) gezeichnete Rechteck erscheint leicht außermittig zum oberen Rand des Rahmens hin.

Antwort:

Das Problem liegt darin, dass Rahmen über inhärente Dekorationen (Rand und Titelleiste) verfügen, die Platz innerhalb des Rahmenbereichs beanspruchen. Wenn Sie, wie in diesem Fall angenommen, direkt auf die Oberfläche eines Rahmens malen, können diese Dekorationen die wahrgenommene Mitte des Rahmens verschieben.

Um das Rechteck in der wahren Mitte des Rahmens zu malen, sollten Sie es auf die des Rahmens rendern Inhaltsbereich. Dieser Bereich schließt die Dekorationen aus und stellt die verfügbare Oberfläche zum Malen dar.

Demonstration:

Im bereitgestellten Java-Codebeispiel:

  • BadFrame: Dieser Rahmen überschreibt die Methode paint() und zeichnet das Rechteck direkt auf den Rahmen selbst. Es zeigt das Off-Center-Problem.
  • PaintablePane: Ein Untercontainer, der als Inhaltsbereich für den goodFrame dient. Es überschreibt die Methoden getPreferredSize() und paintComponent(), um die Größe des Inhaltsbereichs festzulegen und das Rechteck korrekt zu zeichnen.

Der goodFrame verwendet dann den PaintablePane als Inhaltsbereich, um sicherzustellen, dass die gesamte Malerei innerhalb des vorgesehenen Bereichs erfolgt. Die Dekorationen des Rahmens gelten nun als außerhalb des Malbereichs liegend und das Rechteck ist wie vorgesehen zentriert.

Das obige ist der detaillierte Inhalt vonWie zentriert man ein Rechteck innerhalb eines nicht veränderbaren Java-Frames richtig?. 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