Как нарисовать простой объект класса в Java (JFrame)? - PullRequest
0 голосов
/ 27 октября 2019

Я довольно новичок в разработке приложений Java и хочу нарисовать несколько простых фигур в JFrame-canvas без использования одного основного класса, а скорее разделить его на основной класс и класс playerRectangle. В классе playerRectangle я создал метод paint:

public void paint(Graphics g) {
       setSize(500, 500);
       g.drawRect(320, 20, 640, 120);
   } 

Затем я создал объект в некоторой функции рендеринга в основном классе и вызвал функцию рисования этого объекта.

playerRectangle p1 = new playerRectangle();
p1.paint(null);

Но каким-то образом он выдавал ошибку java.lang.NullPointerException и не отображал прямоугольник на экране. Когда я не разделяю эту функцию на два класса, она работает должным образом, даже если выдает эту ошибку. Поэтому, пожалуйста, помогите мне и скажите мне, чего мне здесь не хватает.

Любые исследования на Youtube и другие материалы только говорили мне, что я должен создавать классы, такие как экран и т. Д., Но я не уверен, что это помогает мне.

Спасибо за помощь

1 Ответ

0 голосов
/ 28 октября 2019

Простой пример рисования прямоугольника с использованием стандартных библиотек:

public class SomeClass extends JPanel {
 public void paintComponent(Graphics g) {
  super.paintComponent(g);
  g.setColor(Color.GREEN);
  g.fillRect(0,0,320,220);
 }
 SomeClass() {
   JFrame frame = new JFrame();
   frame.serContentPane(this);
   frame.setBounds(0,0,320,220);
   frame.setVisible(true);
 }
}

Класс с основным методом:

public class Main {
 public static void main(String[] args) {
  new SomeClass();
 }
}
...