Java2D:線幅を増やす


81

Line2Dの幅を広げたい。私はそれをする方法を見つけることができませんでした。この目的のために実際に小さな長方形を作成する必要がありますか?

回答:


166

オブジェクトのsetStrokeストロークを設定するために使用する必要がありGraphics2Dます。

http://www.java2s.comの例には、いくつかのコード例があります。

次のコードは、以下の画像を生成します。

import java.awt.*;
import java.awt.geom.Line2D;
import javax.swing.*;

public class FrameTest {
    public static void main(String[] args) {
        JFrame jf = new JFrame("Demo");
        Container cp = jf.getContentPane();
        cp.add(new JComponent() {
            public void paintComponent(Graphics g) {
                Graphics2D g2 = (Graphics2D) g;
                g2.setStroke(new BasicStroke(10));
                g2.draw(new Line2D.Float(30, 20, 80, 90));
            }
        });
        jf.setSize(300, 200);
        jf.setVisible(true);
    }
}

ここに画像の説明を入力してください

setStrokeメソッドはGraphicsオブジェクトで使用できないことに注意してください。オブジェクトにキャストする必要がありGraphics2Dます。)


この投稿はここの記事として書き直されました。


28
イラストは+1!また、考慮してくださいg2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)
trashgod 2010年

2

とはStroke

BasicStrokeクラスは、グラフィックスプリミティブのアウトラインのレンダリング属性の基本セットを定義します。グラフィックスプリミティブは、Stroke属性がこのBasicStrokeに設定されているGraphics2Dオブジェクトでレンダリングされます。

https://docs.oracle.com/javase/7/docs/api/java/awt/BasicStroke.html

Stroke設定に注意してください:

Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(10));

以来、線幅を設定していますBasicStroke(float width)

指定された線幅で、キャップスタイルと結合スタイルのデフォルト値を使用してソリッドBasicStrokeを作成します。

そして、それはまたのような他の方法に影響を与えるGraphics2D.drawLine(int x1, int y1, int x2, int y2)Graphics2D.drawRect(int x, int y, int width, int height)

Strokeオブジェクトによって返されるアウトラインShapeを使用するGraphics2Dインターフェイスのメソッドには、drawと、drawLine、drawRect、drawRoundRect、drawOval、drawArc、drawPolyline、drawPolygonなど、そのメソッドに関して実装されるその他のメソッドが含まれます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.