2017-05-06 4 views
0

호출 될 때 JFrame을 만드는 메서드를 만들려고합니다. JFrame을 만든 동일한 클래스 내에서 line이라는 또 다른 메서드가 있습니다. 이 메서드는 호출 될 때 입력 된 좌표를 기반으로 JFrame에 선을 그려야합니다. JFrame 올바르게로드하지만 선 메서드가 작동하지 않습니다. 즉, 라인 메소드가 유효한 좌표를 가지고 있어도 JFrame에 아무 것도 나타나지 않습니다.별도의 메서드를 사용하여 JFrame에 선 그리기

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

public class Window{ 

    JFrame f = new JFrame("Pathway"); 

    public Window(int width, int height){ 
    f.setSize(width,height); 
    f.setVisible(true); 
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 

    public void line(int x1,int y1,int x2,int y2){ 
       Graphics g = f.getGraphics(); 
       g.setColor(Color.BLACK); 
       g.drawLine(x1,y1,x2,y2); 
    } 
} 

아직 초보자인데, 나는 무슨 일이 일어나고 있는지 전혀 모른다. 어떤 도움이라도 대단히 감사하겠습니다. 감사!

답변

1

getGraphics()를 사용하지 마십시오. 그건 당신이 주문 그림을하는 방법이 아닙니다.

JPanelpaintComponent() 메서드를 재정 의하여 사용자 지정 그리기를 수행하고이 패널을 프레임에 추가합니다.

자세한 내용과 작업 예제는 Custom Painting의 스윙 튜토리얼 섹션을 참조하십시오.

자습서의 작업 예제부터 시작하여 사용자 정의하십시오.