Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> почемуто не работает вызов метода 
V
    Опции темы
lesniken
Дата 22.3.2009, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 22.3.2009

Репутация: нет
Всего: нет



изучаю java, не могу понять в чем проблема вызова метода, на консоль при попытке запуска выводит следующее

    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)

Код

class MainPanel extends JPanel{    
    
    Board aBoard;
    
    public void paintComponent(Graphics g)
    {
        super.paintComponents(g);
        
        aBoard.showBoard();// проблема в этом вызове


...

Код

public class Board {
    
    final int MAXX=8;
    final int MAXY=8;
    sq[][] board= new sq[8][8];
    
    Board(){
        for(int i=0; i<8; i++)
            for(int j=0; j<8; j++){
                board[i][j].setSq(i,j);
            }
        
    }
    
    void showBoard(){
        //for(int i=0; i<8; i++)
        //    for(int j=0; j<8; j++) board[i][j].showSq();
    }
    
    
}

Код

public class sq{

    
    int x,y;
    int isSet=0;
    int isFocus=0;
    sq(){
        
    }
    
    void setSq(int xx, int yy){
        x=xx;
        y=yy;        
    }
    
    
    void showSq(){
        /*Graphics g = null;
        Graphics2D g2 = (Graphics2D)g;
        if((x+y)%2==1)    g2.setPaint(Color.BLACK);
        else g2.setPaint(Color.WHITE);
        Rectangle2D rect = new Rectangle2D.Double(50+50*x, 50+50*y, 50, 50);
        g2.fill(rect);*/
    }
}




PM MAIL   Вверх
Platon
Дата 22.3.2009, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Код

sq[][] board= new sq[8][8];

Я не вижу, где инициализируются объекты этого двумерного массива.
PM MAIL ICQ   Вверх
lesniken
Дата 22.3.2009, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 22.3.2009

Репутация: нет
Всего: нет



переписал класс Board так
 
Код

public class Board {
    
    final int MAXX=8;
    final int MAXY=8;
    Sq[][] board = new Sq[8][8];
    
    {
    for(int i=0; i<8; i++)
        for(int j=0; j<8; j++){
            board[i][j] = new Sq(i, j);
        }
    }
    
    Board(){        
        
    }
    
    void showBoard(){
    //    for(int i=0; i<8; i++)
    //        for(int j=0; j<8; j++) board[i][j].showSq();
    }
    
    
}



все равно не работает теперь пишет в консоль

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at MainPanel.paintComponent(MainPanel.java:17)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JLayeredPane.paint(Unknown Source)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paintToOffscreen(Unknown Source)
    at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
    at javax.swing.RepaintManager.paint(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
    at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
    at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
    at java.awt.Container.paint(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(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)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at MainPanel.paintComponent(MainPanel.java:17)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JLayeredPane.paint(Unknown Source)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paintToOffscreen(Unknown Source)
    at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
    at javax.swing.RepaintManager.paint(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
    at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
    at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
    at java.awt.Container.paint(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(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)

17ая строка это вызов
  aBoard.showBoard();
PM MAIL   Вверх
lesniken
Дата 22.3.2009, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 22.3.2009

Репутация: нет
Всего: нет



и в класс Sq еще конструктора добавил такой
Код

Sq(int xx, int yy){
        x=xx;
        y=yy;        
    }

PM MAIL   Вверх
Platon
Дата 22.3.2009, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Board aBoard;
а эта переменная точно инициализирована?
PM MAIL ICQ   Вверх
lesniken
Дата 22.3.2009, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 22.3.2009

Репутация: нет
Всего: нет



все заработало, проблема была в том что упускал инициализацию, спасибо

Это сообщение отредактировал(а) lesniken - 22.3.2009, 23:31
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0621 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.