| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Проблема с переменной в Апплете. |
| Автор: Guest 18.7.2004, 12:32 |
| Обьявляю переменнйю так: People p[] = new People[8]; ... class People { protected String name; protected byte age; People(String nm, byte ag) { name=nm; age=ag; getName() { return name; } } } ... Инициализирую эту переменную в INIT апплета так: p[1] = new People("IVANOV", 3); Далее в событии аплета ---> paint(Graphics g) Делаю проверку: if (p[1].getName() == "IVANOV") { g.drawImage(MYimage, 40, 10, 79, 100, this); } и запускаю апплет, но рисунок не выводится. Появляется сообщение о куче ошибок: java.lang.NullPointerException at mynew.myApplet.paint(myApplet.java:73) at sun.awt.RepaintArea.paint(RepaintArea.java:177) at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260) at java.awt.Component.dispatchEventImpl(Component.java:3678) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100) В чем проблема???? |
| Автор: LSD 18.7.2004, 22:44 |
| 1) сравнение строк надо проводить проводить с помощью equals см. соседний топик. 2) к сожалению не совсем ястно какая строка является 73. но мне кажется что проблема в p[1].getName(), т.е. элементу массива p[1] не присвоенно никакого значения, вставь отладочный вывод и проверь это, или пройдись пошагово отладчиком. |
| Автор: DarkDS 19.7.2004, 13:10 |
| Самое лудшее - код в студию, чтобы могли более подробно сказать где и что |
| Автор: Domestic Cat 19.7.2004, 15:56 | ||
Или MYimage не инициализирован |
| Автор: LSD 19.7.2004, 18:08 | ||
Если бы MYimage был бы равен null, то стек вызовов был-бы другим. |
| Автор: Domestic Cat 19.7.2004, 18:40 |
| Почему? Содержание стека зависит от ОС да и от много еще чего; все что из стека видно - так это то что диспетчер пытался вызвать paint и получил NullPointerException |
| Автор: LSD 19.7.2004, 19:00 |
| Из стека видно что ошибка была в myApplet.java, если бы проблема была в MYimage, то ошибка была-бы где-то внутри Graphics или глубже. |
| Автор: Domestic Cat 19.7.2004, 19:34 |
| Согласен, тогда наверху стека был бы drawImage. Но вроде бы p[1] инициализирован? Нужен код. |
| Автор: DarkDS 20.7.2004, 11:26 |
| Я это даавно сказал |
| Автор: Domestic Cat 20.7.2004, 19:38 |
| Однако автор не заинтересован |