Я работаю над созданием простой программы Java2D. Предполагается рисовать прямоугольники из другого класса, но это не работает. Я бы очень признателен, если бы один из вас, ребята, мог занять несколько минут, чтобы посмотреть, где я ошибаюсь. Это мое последнее задание завтра.Рисование прямоугольника из другого класса
Вот код, который я работал до сих пор:
Block.java
public class Block extends JPanel {
public Graphics2D g;
protected int posX = 0;
protected int posY = 0;
protected int w = 100;
protected int h = 100;
public void draw() {
g.setColor(Color.GREEN);
g.fillRect(posX, posY, w, h);
}
}
Вот главный класс:
public class main {
private static final long serialVersionUID = 1L;
private Block[] pie = new Block[5];
Timer timer;
main() {
final JPanel screen = new JPanel() {
int x = 0;
int step = 10;
public void paintComponent(Graphics g) {
super.paintComponent(g);
pie[0].g = (Graphics2D) g;
pie[0].draw();
}
};
JFrame f = new JFrame("Test Lab");
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setContentPane(screen);
f.pack();
f.setLocationByPlatform(true);
f.setResizable(false);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable(){
public void run(){
new main();
}
});
}
}
Большое спасибо.
Так в чем проблема? Что должно произойти и что происходит вместо этого? – MikeTheLiar
Я понятия не имею. Есть несколько сообщений, появляются на консоли: Исключения в потоке "АВТ-EventQueue-0" java.lang.NullPointerException \t на главном $ 1.paintComponent (main.java:54) \t в javax.swing.JComponent.paint (Неизвестный источник) где строка 54 относится к
pie[0].g = (Graphics2D) g;
– Mdkusumaсм. Http://stackoverflow.com/a/17871842/635678 для получения справки. что такое строка 54 в main.java? –