2013-08-30 5 views
1

그래서 저는 Java 프로그래밍과 프로그래밍에 대해 전반적으로 지식이 부족합니다. 주어진 좌표와 함께 화면에 간단한 사각형을 그리려고합니다. 여기 Java 2D 그래픽 - 직사각형 그리기

은 서랍 클래스 내 코드입니다 :

public class Drawer extends JPanel { 

public static void drawPixel(Graphics g, int x, int y) { 
    g.fillRect(x, y, 5, 5); 
} 

} 

그리고 여기가 메인 클래스에서 사용하려고 코드입니다 :

Drawer drawer = new Drawer(); 
Drawer.drawPixel(Graphics g, i9, i10); 

것은 그래서 내가 정말 무엇을 이해하지 못하는 첫번째 인수는 for이다. 그것은 나에게 "기호 g"를 해결할 수 없다는 오류를줍니다. i9와 i10은 직사각형을 그릴 좌표입니다.

미리 도움을 청하십시오. :)

+2

http://docs.oracle.com/javase/tisupport/uiswing/painting/step1.html에서 http://docs.oracle.com/javase/tutorial/uiswing/painting/으로 이동하십시오. step3.html –

+2

오라클 스윙 튜토리얼을 통해 시간을 할애하십시오. GUI 조각들을 함께 묶는 방법을 보여줄 것입니다. http://docs.oracle.com/javase/tutorial/uiswing/ –

답변

1

Drawer.drawPixel(Graphics g, i9, i10);이 문제의 원인 일 수 있습니다.

Graphics g 줄을 따라 (첫 번째 인수로) 뭔가를 전달하고 있습니다. Graphics 비트가 없으면 자체적으로 g을 전달하는 것으로 생각하면 문제가 해결됩니다.

Graphics g 개체는 그래픽 컨텍스트를 참조합니다. 이는 효과적으로 화면에 물건을 그립니다. 메서드를 호출하면 사용자가 문자를 볼 수있는 곳에서 그대로 문자를 그릴 수 있습니다.

예를 들어 JPanel을 사용하면 paintComponent() 메서드를 재정의 할 수 있습니다. 이 메소드는 Graphics 객체를 사용한다는 것을 알 수 있습니다.이 객체를 사용하여 패널에 내용을 그릴 수 있습니다.

4

그런 것을 그릴 수는 없습니다. 그리려면 paintComponent() 메서드를 사용해야합니다.

확인이 : 코드의 일부는 바로 그래픽 g처럼되지 않습니다

public class RectDrawer extends JPanel { 
    private int x; 
    private int y; 
    public RectDrawer(int x, int y){ 
     this.x = x; 
     this.y = y; 
    } 
    public void paintComponent(Graphics g) { 
     g.fillRect(x, y, 5, 5); 
    } 
} 
+0

스윙에서 작업하는 경우이 작업을 수행하는 가장 좋은 방법입니다. – Surveon

+1

'paintComponent'는 정적도 아니고 공개도 아닙니다 (http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html # paintComponent % 28java.awt.Graphics % 29) –

+0

static은 거기에 있으면 안되지만 (내 경험에 따라) 올바른 방법 인 정적 그것을 무시한다. – Surveon

0

. 나는 다른 사람들이 가지고 있기 때문에 그걸 넘어 가지 않을 것이지만 당신은 자습서를 보길 권한다. 자바에 새로운 점수는 다음 확인해보세요

video

당신은 비디오 시리즈, 그것은 당신에게 자바 문법과 기본의 확실한 이해를 가르치는 것을 확인해야합니다. 그리고 그 후이 같은 자습서를 체크 아웃 시작할 수 있습니다

video

하나는 당신에게 자바에서 복잡한 게임을 만드는 정말 좋은 확실한 이해를 가르친다. 중급 및 고급 Java 프로그래머도 체크 아웃하는 것이 좋습니다. 처음 시작했을 때 다른 튜토리얼을 보았을 때 주로 중도에서 멈추거나 끔찍한 실수를 저질렀습니다. 이 비디오는 전체적으로 더 쉬운 방법을 가르칩니다.