Невозможно создать меторд в другом классе и назвать его в основном классе. - PullRequest
0 голосов
/ 14 июня 2011

Я создал этот метод в классе с именем tree:

public void printTree(Graphics g, int x, int y) {
MediaTracker mt = new MediaTracker(this);
tree = getImage(getCodeBase(), "tree.png");
mt.addImage(tree, 0);
g.drawImage(tree, x, y, this);

Я пытаюсь использовать его в основном в методе рисования:

Tree tree = new Tree();
    tree.printTree(g, 60, 50);

Я не получаю ошибок, однако, когда я запускаю приложение, я получаю следующие ошибки:

    Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at java.applet.Applet.getCodeBase(Unknown Source)
at Tree.printTree(Tree.java:12)
at Main.paint(Main.java:146)
at Main.update(Main.java:187)
at sun.awt.RepaintArea.updateComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Если кто-нибудь может мне помочь, я был бы очень рад.

Ответы [ 3 ]

1 голос
/ 14 июня 2011

Апплеты запускаются в AppletContext предоставлено ли appletviewer или страницу браузера. Если вы запускаете апплет из основного метода или загрузить апплет в приложение там будет не быть AppletContext и getCodeBase вернет ноль. В этом случае вы можете использовать альтернативную / другую загрузку изображений способ.

Ссылка

Используйте другой способ импортировать изображение в апплет .

1 голос
/ 14 июня 2011

Есть объект, который вы пытаетесь использовать, который является нулевым.Используйте отладчик и выясните, какой из них, и выясните, как вы можете убедиться, что он не нулевой, или исправить ошибку, из-за которой он становится нулевым.

0 голосов
/ 14 июня 2011

"Я не получаю ошибок, однако когда я запускаю приложение, я получаю следующие ошибки:"

Вы, вероятно, имеете в виду, что вы не получаете ошибок компилятора.NullPointerException - довольно распространенная, но серьезная ошибка.Вы должны инициализировать объекты, прежде чем использовать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...