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과 같이 해당 메서드 측면에서 구현되는 다른 모든 메서드가 포함됩니다.