지금 당장은 Java awt 그래픽을 처음 사용합니다. 실제로 화면에 물건을 두는 것과 같은 기본 사항을 설명했지만, 주요 문제점은 클래스 파일 외부에서 사용할 사용자 지정 메서드를 만들려고한다는 것입니다. 내 화면 클래스java.awt.graphics의 그래픽 사용자 정의 메서드
: 내 그리기 클래스
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Screen extends JPanel{
Graphics g = null;
public void createBox(int x, int y, int width, int height){
g.fillRect(x, y, width, height);
}
}
뿐만 아니라 화면 클래스를 사용하여 :
import javax.swing.*;
public class Draw{
public static void main(String[] args) {
JFrame f = new JFrame("Shapes");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Screen s = new Screen();
s.createBox(10,10,10,10);
f.add(s);
f.setSize(512, 512);
f.setVisible(true);
}
}
을 나는 그래픽 g이 경우에도; 이 선언되지 않고, 난 여전히 같은 오류 존재 얻을 :
Exception in thread "main" java.lang.NullPointerException
at Screen.createBox(Screen:java:7)
at Draw.main(Draw:java:8)
에서는 createBox()는 Screen 클래스의 외부에서 사용하도록되어 있으므로 나는 아직도 fillRect 할()하지만, 다른 이름으로 (나는이 희망을 사용할 수 있습니다 말이된다).
누구든지 내가 잘못하고있는 것을 지적 할 수 있습니까? 감사.
나는 paintComponent를 사용하고 싶지 않다. 다른 클래스에서 createBox를 입력하면 화면에 사각형을 만들 수 있습니다. –
것은 당신이 원하는 것을 정말로 신경 쓰지 않습니다. 이것은 사용자 정의 페인팅을 수행하는 올바른 방법 일뿐입니다. OTOH 당신은 그림 표면으로서'BufferedImage'를 사용할 것입니다 .. –
그럼 내 질문에 답하지 못했습니다. 나는 내가 잘못한 것을 회화의 올바른 방식이 아닌 것으로 언급하고있다. 다른 방법으로 화면에 상자를 넣으려고했습니다. –