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

1

무엇입니까 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 인터페이스의 메서드에는 drawLine, drawRect, drawRoundRect, drawOval, drawArc, drawPolyline 및 drawPolygon과 같이 해당 메서드 측면에서 구현되는 다른 모든 메서드가 포함됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.