2011-03-29 9 views
1

안녕하세요, 페인트 방법을 호출하는 방법을 알고 싶습니다 ...페인트 방법을 호출하는 방법을 모르겠다

저는 초보 프로그래머이며 페인트와 같은 것을 실험하고 있습니다.

내가 만들고자하는 프로그램은 3 단이있는 게임이며 게임의 목적은 다른 크기의 디스크를 왼쪽/오른쪽 단계에서 오른쪽/왼쪽 단계로 옮기는 것입니다. 당신은 그것을 호출 할 필요는 없습니다

public static void main(String[] args) { 
    Scanner scan = new Scanner(System.in); 
    int amount = 0; 

    // get the amount of rectangles to draw to represent disks 
    while (amount <= 1 && amount >= 5) { 
     System.out.print("Please enter amount of discs to use(less than 7 more than one)."); 
     amount = scan.nextInt();    
    } 
} 

public void paint(Graphics g) { 
    // draw a certain amount of rectangles in ascending order 
    if (amount <= 1 && amount >= 5) { 
     for (int i = 0; i < amount; i++) { 
      g.fillRect(220 - (20 * i), 200 + (10 * i), 100 - (20 * i), 20); 
     } 
    } 
} 
+0

동급 클래스는 무엇입니까? 'JFrame'? – pajton

답변

2

:

여기 (근처 나에게 휴식을주고 완료 없음) 내 코드입니다. 대신 자바가 생성하는 메인 루프를 사용해야한다.

보통 접근 방식은 JPanel (이 질문 참조 : How to make canvas with Swing? 참조)을 확장하고 paint() 메서드를 재정의하는 것입니다.

이제 JFrame을 만들고 새 UI 구성 요소를 추가하고 프레임을 엽니 다. 그러면 Java가 렌더링되는지 확인합니다.

3

페인트 메서드는 개체를 만들 때 처음으로 호출됩니다.

은 새 Graphics 객체에 전달하려면 다시는 update(Graphics g)를 호출 할 수 있습니다 중 하나라고 할 수있는 paint() 방법을 강제로하지만,이 방법은 그것을 최대한 빨리 호출 할 예정되기 때문에 일반적으로 나는 repaint() 방법을 사용하는 것이 좋습니다 것입니다.

0

나는 다른 사람을 가르치는 데 전문가가 아니지만 다른 사람을 가르치는 데는 다른 사람이긴하지만 페인트 대신 paintComponent(Graphics g) 방법으로 코드를 작성한 다음 repaint 메소드를 호출해야합니다.

관련 문제