NullPointerException

0

Napisałem prosty aplet. Uruchamiając go czasami wyskakuje na konsoli komunikat o wyjątku NullPointerException. Uruchmiam zawsze ten sam program a wyjątek raz się pojawia a raz nie. Wyjątej jak się pojawia to po zamknięciu okna Applet Viewer. Jak należy rozumieć tę nieregularność w występowaniu wyjątku? Proszę o podpowiedzi. Z góry dziękuję

0
  1. Podaj adres gdzie to masz umieszczone. popatrzymy
  2. NullPointer oznacza iż któraś ze zmiennych nie ma wartości.
  3. zamieść to co leci na konsoli. Stacktrace - opis błedu
0

W sieci jeszcze tego nie umieśćiłem. Kod wygląda następująco

package mypak;

import java.awt.*;
import java.applet.*;

public class Lissajous extends Applet {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    final static int APPWIDTH = 300, // applet dimensions
                     APPHEIGHT = 200;

    Color bgColor = new Color(200, 240, 100); // background colour

    public void init() {
        setBackground(bgColor);

    }

    public void paint(Graphics screen) {
        Graphics2D g = (Graphics2D) screen;

        g.setColor(Color.black);
        g.drawRect(0, 0, APPWIDTH, APPHEIGHT); // ractangle
        g.drawLine(APPWIDTH / 2, 0, APPWIDTH / 2, APPHEIGHT); // horizontal
                                                                // line
        g.drawLine(0, APPHEIGHT / 2, APPWIDTH, APPHEIGHT / 2); // vertical line

        BasicStroke pen = new BasicStroke(4.0f, BasicStroke.CAP_BUTT,
                BasicStroke.JOIN_ROUND);
        for (int x = APPWIDTH / 2; x < APPWIDTH + 500; x++) {
            // g.drawLine(x, f(x), x+1, f(x+1));

            g.setStroke(pen);
            g.drawLine(f(x, 0.01, 1.5) + APPWIDTH / 8, f(x, 0.03, 0.0), f(
                    x + 1, 0.01, 1.5)
                    + APPWIDTH / 8, f(x + 1, 0.03, 0.0));
        }

    }

    int f(int wspX, double omega, double faza) {
        double x = (double) wspX;
        return (int) (APPHEIGHT / 2 * (-Math.sin(omega * x + faza)))
                + APPHEIGHT / 2;
    }
}

Natomiast błąd

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: component argument pData
    at sun.awt.windows.Win32SurfaceData.initOps(Native Method)
    at sun.awt.windows.Win32SurfaceData.<init>(Unknown Source)
    at sun.awt.windows.Win32SurfaceData.createData(Unknown Source)
    at sun.awt.Win32GraphicsConfig.createSurfaceData(Unknown Source)
    at sun.awt.windows.WComponentPeer.replaceSurfaceData(Unknown Source)
    at sun.awt.windows.WComponentPeer.replaceSurfaceData(Unknown Source)
    at sun.awt.windows.WComponentPeer$2.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)
0

Jak często ci błąd wyrzuca bo u mnie jest ok.

0

Nie często raz za czas. OK 2 na 10 uruchomień. Korzystam z eclipse.

0

Hym mialem podobne problemy w Netbeansie umnie chodzilo o to ze program byl jeszcze uruchomiony:| i recznie go musialem wylaczac

pozdr.

0

Dziwne u mnie nie ma żadnych problemów? Może masz coś nie tak z wersją jre.

0

Co w takim przypadku się robi? Należy zignorować problem czy obsługiwać w jakiś sposób ten wyjątek?

0

Nic się nie robi. Podobnie błąd nie powinien pojawić się na maszynach z jednym procesorem. Niestety pojawił się też w 1.6 Mustang i chyba szybko nie zniknie...

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0