座標及び幅と高さを設定する

広告

Ellipse2D.Doubleクラスで座標や幅と高さの値を設定するにはコンストラクタで指定する以外にオブジェクトを作成した後でメソッドを使って設定することが出来ます。Ellipse2D.Doubleクラスで用意されている「setFrame」メソッドを使います。

この Shape の表示枠矩形の位置とサイズを、指定された矩形値に設定します。

パラメータ:
  x - 指定された矩形形状の 左上隅の X 座標
  y - 指定された矩形形状の 左上隅の Y 座標
  w - 指定された矩形形状の幅
  h - 指定された矩形形状の高さ

1番目の引数でx座標を2番目の引数でy座標をそれぞれdouble型の値で指定します。この2つが長方形の領域の左上の座標となります。そして3番目の引数で幅を4番目の引数で高さをそれぞれdouble型の値で指定します。作成される楕円はこの長方形の領域に内接する形状となります。

具体的には次のように記述します。

Ellipse2D.Double ellipse = new Ellipse2D.Double();
ellipse.setFrame(10.0d, 10.0d, 20.0d, 12.0d);

サンプルプログラム

簡単なサンプルを一度試してみます。

Ellipse2DTest1.java

import javax.swing.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.*;

public class Ellipse2DTest1 extends JPanel{
  public static void main(String[] args){
    JFrame frame = new JFrame();

    Ellipse2DTest1 app = new Ellipse2DTest1();
    frame.getContentPane().add(app);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  public void paintComponent(Graphics g){
    Graphics2D g2 = (Graphics2D)g;

    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
                        RenderingHints.VALUE_ANTIALIAS_ON);

    Ellipse2D.Double ellipse = new Ellipse2D.Double();
    ellipse.setFrame(30.0d, 30.0d, 150.0d, 80.0d);

    g2.draw(ellipse);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

座標や幅などを設定する

( Written by Tatsuo Ikura )