2014-07-26 6 views
0

자바에서 파선과 물결 모양의 선을 그려야합니다. Graphics - 및 g.drawLine() 메서드를 사용하여 일반 선을 그릴 수 있습니다. Graphics2D 또는 그와 비슷한 점에서 파선과 물결 선을 그릴 수있는 쉬운 방법이 있습니까?자바 - 파선과 물결 모양을 그리는 방법?

지금은 MouseListener의 좌표를 사용하여 선을 그립니다. 그래서 MS Paint와 같은 것입니다.

+1

[Java에서 점선 그리기] 가능한 복제본 (http://stackoverflow.com/questions/21989082/drawing-dash-line-in-java) – DavidPostill

+0

라인이 모두 수평/수직 또는 어떤 각도에서도 가능합니까? ? –

+0

@AndrewThompson 그들은 어떤 각도이든 상관 없습니다. 점선 문제가 해결되었습니다. 지금 물결 모양 선에 문제가 있습니다. –

답변

1

점선, as presented by Kevin Workman:

public void drawDashedLine(Graphics g, int x1, int y1, int x2, int y2){ 

      //creates a copy of the Graphics instance 
      Graphics2D g2d = (Graphics2D) g.create(); 

      Stroke dashed = new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[]{9}, 0); 
      g2d.setStroke(dashed); 
      g2d.drawLine(x1, y1, x2, y2); 

      //gets rid of the copy 
      g2d.dispose(); 
    } 

당신이를 사용하여 같은 점선 라인을 만들 수 있습니다.

물결 선, as presented by Tiger:

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

public class CurveDraw extends JFrame { 
     public static void main(String[] args) { 
       CurveDraw frame = new CurveDraw(); 
       frame.setVisible(true); 
     } 
     public CurveDraw() { 
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       setSize(400,400); 
     } 
     public void paint(Graphics g) { 
       QuadCurve2D.Double curve = new QuadCurve2D.Double(50,100,100,170,150,100); 
       ((Graphics2D)g).draw(curve); 
     } 
} 

Docs.oracle to learn more about Swing wavy line

Curvy line

Docs.oracle to learn more about Swing

+0

감사합니다. 나는 그것을 시도 할 것이다. 그러나 물결 모양 선은 어떨까요? –

+0

@Mike_NotGuilty 업데이트 됨. 이들은 내 컴퓨터에 저장되었습니다. 그들은 일해야합니다. –

+3

여러분, 특히 @Mike_NotGuilty 같은 초보자는 JFrame의 페인트 방법으로 직접 그릴 것을 권장하지 마십시오. 이것을 보는 것은 손톱이 칠판을 긁는 것과 같습니다. 그것은 내 뱃속에 아프게합니다. –