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:
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!