2016-01-17 5 views
0

Я совсем новичок в этом материале очень жаль мой нуб вопросКак запустить это приложение 3D Java?

Итак, я пытаюсь запустить этот код на NetBeans https://github.com/rukayam/Cube но это не имеет главный класс, так что я создал один, но проблема is, класс, который содержит панель и метод paint, является абстрактным (Canvas.java), и я не могу создать экземпляр абстрактного класса ... Что мне делать?

(от того, что я знаю о живописи в Java, нужно позвонить/экземпляр класса/объект, который содержит панель/JPanel и краски или методы paintComponent)

Заранее спасибо!

+0

Класс Lec04 расширяет класс 'Canvas' и является реальным. Но нет никаких доказательств того, что этот код когда-либо работал ... так что удачи. –

ответ

0

Что говорит Стивен С: Это может быть экземпляр Lec04, который имеет все свойства и каждый метод, кроме void render() унаследованных, и void render() реализован внутри него.

+0

Да, я пытался создать Lec04 в своем основном классе и назвать «lec04.init();» но он дал мне эту ошибку: 'code'" Исключение в потоке "главный" java.lang.NullPointerException \t в pkg3dcube3.Canvas.init (Canvas.java:55) \t в pkg3dcube3.Lec04.init (Lec04. java: 18) \t at pkg3dcube3.Main.main (Main.java:25) C: \ Users \ Wartogh \ AppData \ Local \ NetBeans \ Cache \ 8.1 \ executor-snippets \ run.xml: 53: Java возвращается: 1 BUILD FAILED (общее время: 1 секунда) "' code' – Wartogh

+0

https://docs.oracle.com/javase/7/docs/api/java/awt/Component.html#createImage%28int,%20int%29 строки 54 и 55 вашего кода говорят \t buf = createImage (700,700); bufG = buf.getGraphics(); , но в документации для компонента указано, что createImage может возвращать значение null. В вашем случае createImage, кажется, вернул null, поэтому buf.getGraphics() пытается вызвать метод для нулевого объекта. – plainOldNerd

+0

Документы говорят, что он может возвращать значение null, потому что компонент не отображается. Попробуйте помещать строки 54 и 55 в Lec04.init() вместо этого, потому что Canvas является абстрактным и, возможно, не может быть отображаемым. Я не уверен, что это сработает, но стоит попробовать. – plainOldNerd