Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Ошибка в Timer


Автор: ShurikA 25.12.2005, 02:21
Код

timer = new Timer(DEFAULT_TIMEOUT, new ActionListener(){
        public void actionPerformed(ActionEvent e) {
                if (!fut.isAlive()) {
            timer.stop();
            boolean isSuccess = false;
            StringBuffer svrRet;

            if (null != fut.getException()) {} else {
            dirFileList.clearAll();
            isSuccess = true;
            }
            svrRet = fut.getServerOutput();
            fut.close();
            fut = null;
            // Setting Progress bar to 0%.
            progress.setString(null);
            progress.setValue(0);
                    if (isSuccess)
            tf.setText("true");
            else
            tf.setText("false");
            // Do something (eg Redirect to another page for processing).
            if (isSuccess) {
            dirFileList.clearAll();
            upload.setEnabled(false);
            removeAll.setEnabled(false);
            remove.setEnabled(false);

            //Redirect to other page
                        if (redurl != null) {
                try {
                String vars = uID + "&num_pics=" +
                          fileList.length;
                String add = appendAdd(redurl, vars);
                URL url1 = new URL(add);
                appContext.showDocument(url1, "_self");
                } catch (MalformedURLException er) {
                er.printStackTrace();
                }
            }
            } else {
            upload.setEnabled(true);
            removeAll.setEnabled(true);
            remove.setEnabled(true);
            fileChooser.setVisible(true);
            dirFileList.getList().setEnabled(true);
            }
        }
        }
    });
timer.start();


Выдаёт ошибку:
Код

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at mfuploader.FileChooserPanel$3.actionPerformed(Unknown Source)
    at javax.swing.Timer.fireActionPerformed(Timer.java:271)
    at javax.swing.Timer$DoPostEvent.run(Timer.java:201)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Автор: Beard 25.12.2005, 02:41
А поподробнее (код) можно?

Автор: batigoal 25.12.2005, 10:57
ShurikA
Пройди код дебаггером, и поймешь, на какой строке ты вываливаешься.

Автор: ShurikA 25.12.2005, 11:07
Вот именно на этой:
Код

timer = new Timer(DEFAULT_TIMEOUT, new ActionListener(){...

Автор: LSD 25.12.2005, 11:10
Нет, он вываливается внутри метода actionPerformed(), а не в конструкторе.
Поставь на строку if (!fut.isAlive()) { брекпоинт, запустись под отладкой, и пошагово пройдись весь метод.

Автор: ShurikA 25.12.2005, 11:14
Цитата(LSD @ 25.12.2005, 10:10)
Нет, он вываливается внутри метода actionPerformed(), а не в конструкторе.
Поставь на строку if (!fut.isAlive()) { брекпоинт, запустись под отладкой, и пошагово пройдись весь метод.

ОК, попробую когда дома будуsmile

Автор: ShurikA 25.12.2005, 19:52
Нашёл!!!
ошибку он выдавал вот тут:
Код

progress.setString(null);
progress.setValue(0);


потому как я не определил:
Код

progress.setStringPainted(true);


всем спасибо!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)