2016-05-30 22 views
2

JFrameに円を描くプログラムを作っています。私は画面中央の円でプログラムを開始したいので、JFrameウィンドウのサイズを変更したとしても、それはまだ中央にあります。どうすればいい?私はたくさん見てきましたが、私にはうってつけのものは見つかりませんでした。コードは下にあります。前もって感謝します!JFrameで描画オブジェクトを中央に配置するにはどうすればよいですか?

import java.awt.Graphics; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class ImageFrame extends JFrame { 
    private static final long serialVersionUID = 1L; 

    int width = 40; 
    int height = 40; 
    int x = 160; 
    int y = 70; 

    JPanel panel = new JPanel() { 
     private static final long serialVersionUID = 1L; 
     public void paintComponent(Graphics g) { 
      super.paintComponents(g); 
      g.drawOval(x, y, width, height); 
      } 
    }; 

    public ImageFrame() { 
     add(panel); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     setSize(400, 300); 
     setLocationRelativeTo(null); 
     setVisible(true); 
    } 
} 

答えて

2

これは簡単な数学的問題です。コンテナ幅と円の差を2で割ってdrawOvalのx座標を探します。 y座標の場合はheightについても同じ操作を行います。

+0

コンテナの幅と高さを取得するにはどうすればよいですか?これはスーパーシンプルな場合は申し訳ありません。 – LAD

+0

'getWidth()'と 'getHeight()'はそれぞれ – Reimeus

+0

... [javadoc](https://docs.oracle.com/javase/8/docs/api)にあります。 /javax/swing/JPanel.html)... – Reimeus

関連する問題