Line2D 너비를 늘리고 싶습니다. 그렇게 할 방법을 찾을 수 없었습니다. 이 목적을 위해 실제로 작은 직사각형을 만들어야합니까?
답변:
개체 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
합니다.)
이 게시물은 여기 에 기사로 다시 작성되었습니다 .
무엇입니까 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과 같이 해당 메서드 측면에서 구현되는 다른 모든 메서드가 포함됩니다.
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)