線の太さの設定

広告

線の太さの設定を行います。次のコンストラクタを使用します。

指定された線幅と、先端およびライン接合のスタイルのデフォルト値を使って、
実線で BasicStroke を構築します。

パラメータ:
  width - BasicStroke の幅 
例外: 
  IllegalArgumentException - width が負の値の場合

1番目の引数に線の太さを表すfloat型の値を指定します。このコンストラクタを使用する場合は線の太さ以外の項目はデフォルトの値が使用されます。

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

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

  BasicStroke wideStroke = new BasicStroke(4.0f);
  g2.setStroke(wideStroke);
  
  g2.draw(new Line2D.Double(50, 50, 160, 180));
}

サンプルプログラム

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

StrokeTest1.java

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

public class StrokeTest1 extends JPanel{

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

    StrokeTest1 app = new StrokeTest1();
    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);

    g2.draw(new Line2D.Double(50, 30, 240, 120));

    BasicStroke wideStroke = new BasicStroke(4.0f);
    g2.setStroke(wideStroke);

    g2.draw(new Line2D.Double(50, 50, 240, 140));

    BasicStroke superwideStroke = new BasicStroke(10.0f);
    g2.setStroke(superwideStroke);

    g2.draw(new Rectangle2D.Double(70, 20, 150, 120));
  }
}

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

線の太さを設定する

( Written by Tatsuo Ikura )