Java フレームの中央に長方形を配置する
Java では、フレーム内に長方形を描画しようとするときに、その中央に配置されるようにする必要があります。挑戦的であること。特定の x、y、幅、高さの値を設定したにもかかわらず、長方形がオフセットして表示される場合があります。これに対処するには、フレームの装飾要素を理解することが重要です。
フレームの装飾に関する問題
フレームには通常、境界線やタイトル バーなどの装飾が含まれます。フレームの境界内のスペースを占有します。したがって、コンテンツ領域ではなくフレームに直接ペイントすると、長方形の位置が高すぎるように見える可能性があります。
解決策: フレームのコンテンツ領域にペイントする
長方形を正しく中央に配置するには、基本的に装飾を除いて、フレームのコンテンツ領域にペイントすることに重点を置きます。コンテンツ領域は、コンポーネントの配置に指定された領域であり、位置決めのための一貫した正確な基準点を提供します。
実装例
次のコードは、コンポーネントを正しく配置する方法を示しています。フレームの中央に長方形を配置し、フレームの装飾を調整します:
import javax.swing.*; import java.awt.*; public class CenteredRectangle extends JFrame { public static void main(String[] args) { new CenteredRectangle(); } public CenteredRectangle() { setDefaultCloseOperation(EXIT_ON_CLOSE); // Set the content pane's preferred size setContentPane(new PaintablePanel()); pack(); // Center the frame on the screen setLocationRelativeTo(null); // Make the frame visible setVisible(true); } public class PaintablePanel extends JPanel { @Override public Dimension getPreferredSize() { return new Dimension(800, 400); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); // Draw the rectangle centered within the content area paintRectangle(g); } private void paintRectangle(Graphics g) { g.setColor(Color.RED); int x = (getWidth() - 700) / 2; int y = (getHeight() - 300) / 2; g.drawRect(x, y, 700, 300); } } }
この例では、新しいパネルが作成され、次のように設定されます。フレームのコンテンツ ペイン。パネルは、コンポーネントを描画するための専用領域を提供します。 getPreferredSize() メソッドはパネルに特定の優先サイズがあることを保証し、paintComponent() メソッドは描画動作をカスタマイズするためにオーバーライドされます。次に、paintRectangle() メソッドは、コンテンツ領域の寸法に基づいて適切なオフセットを計算し、その結果、中央に配置された長方形が生成されます。
フレームのコンテンツ領域を利用し、フレームの装飾を調整することにより、このアプローチは、長方形を目的の位置に正確に配置します。場所。
以上がフレームの装飾を考慮して、Java フレーム内の四角形を中央に配置する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。