2011-07-12 4 views
0

Je veux afficher le non au hasard dans l'applet tant que l'applet est en cours d'exécution mais ne l'affiche pas. guider bien vouloir ce qui est essorer avec le codeaffichage aléatoire non dans l'applet

package javaapplication1; 
import java.util.*; 
import java.applet.Applet; 
import java.awt.Graphics; 
import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 

public class set extends Applet implements Runnable { 
    private DateFormat formatter = null; 
    private Thread t = null; 

    public void init() { 

     int n = (int)(10.0 * Math.random()) + 1; 
     System.out.print(n); 
     t = new Thread(this); 
    } 

    public void start() { 
     t.start(); 
    } 

    public void stop() { 
     t = null; 
    } 

    public void paint(Graphics g) { 
     Date now = Calendar.getInstance().getTime(); 
     // 
     // Show the current time on the browser status bar 
     // 
     this.showStatus(formatter.format(now)); 
    } 

    public void run() { 
     int delay = 1000; 
     try { 
      while (t == Thread.currentThread()) { 
       // 
       // Repaint the applet every on second 
       // 
       repaint(); 
       Thread.sleep(delay); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

et son flottant à l'exception suivante

Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException 
     at javaapplication1.set.paint(set.java:39) 
     at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248) 
     at sun.awt.RepaintArea.paint(RepaintArea.java:224) 
     at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310) 
     at java.awt.Component.dispatchEventImpl(Component.java:4706) 
     at java.awt.Container.dispatchEventImpl(Container.java:2099) 
     at java.awt.Component.dispatchEvent(Component.java:4460) 
     at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 
     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException 
     at javaapplication1.set.paint(set.java:39) 
     at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248) 
     at sun.awt.RepaintArea.paint(RepaintArea.java:224) 
     at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310) 
     at java.awt.Component.dispatchEventImpl(Component.java:4706) 
     at java.awt.Container.dispatchEventImpl(Container.java:2099) 
     at java.awt.Component.dispatchEvent(Component.java:4460) 
     at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 
     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
4Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException 
     at javaapplication1.set.paint(set.java:39) 
     at java.awt.Container.update(Container.java:1801) 
     at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239) 
     at sun.awt.RepaintArea.paint(RepaintArea.java:216) 
     at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310) 
     at java.awt.Component.dispatchEventImpl(Component.java:4706) 
     at java.awt.Container.dispatchEventImpl(Container.java:2099) 
     at java.awt.Component.dispatchEvent(Component.java:4460) 
     at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 
     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException 
     at javaapplication1.set.paint(set.java:39) 
     at java.awt.Container.update(Container.java:1801) 
     at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239) 
     at sun.awt.RepaintArea.paint(RepaintArea.java:216) 
     at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310) 
     at java.awt.Component.dispatchEventImpl(Component.java:4706) 
     at java.awt.Container.dispatchEventImpl(Container.java:2099) 
     at java.awt.Component.dispatchEvent(Component.java:4460) 
     at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 
     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException 
     at javaapplication1.set.paint(set.java:39) 
     at java.awt.Container.update(Container.java:1801) 
     at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239) 
     at sun.awt.RepaintArea.paint(RepaintArea.java:216) 
     at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310) 
     at java.awt.Component.dispatchEventImpl(Component.java:4706) 
     at java.awt.Container.dispatchEventImpl(Container.java:2099) 
     at java.awt.Component.dispatchEvent(Component.java:4460) 
     at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 
     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException 
     at javaapplication1.set.paint(set.java:39) 
     at java.awt.Container.update(Container.java:1801) 
     at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239) 
     at sun.awt.RepaintArea.paint(RepaintArea.java:216) 
     at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310) 
     at java.awt.Component.dispatchEventImpl(Component.java:4706) 
     at java.awt.Container.dispatchEventImpl(Container.java:2099) 
     at java.awt.Component.dispatchEvent(Component.java:4460) 
     at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 
     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException 
     at javaapplication1.set.paint(set.java:39) 
     at java.awt.Container.update(Container.java:1801) 
     at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239) 
     at sun.awt.RepaintArea.paint(RepaintArea.java:216) 
     at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310) 
     at java.awt.Component.dispatchEventImpl(Component.java:4706) 
     at java.awt.Container.dispatchEventImpl(Container.java:2099) 
     at java.awt.Component.dispatchEvent(Component.java:4460) 
     at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 
     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException 

Répondre

1

Comment voulez-vous l'afficher, et quel bit de votre code pensez-vous que sera la réalisation de cela? Au moment où je peux vous voir créer un nombre aléatoire, puis appeler System.out.println avec ce nombre. Cela affichera le numéro sur la console, mais il ne l'affichera pas dans votre applet.

Vous devez mettre de la logique dans la méthode paint(Graphics g) pour afficher ce numéro, par exemple, en appelant g.drawString(). Cependant, il y a une multitude de façons de produire du texte, selon la façon dont vous voulez qu'il lise ce que vous avez déjà, de sorte qu'il n'est pas plausible de donner une seule réponse correcte ou plus spécifique à cette question.

Vous devriez jeter un autre coup d'oeil à un didacticiel d'applet qui va sur la façon dont vous contrôlez la sortie, et peut-être poster des questions spécifiques basées sur le résultat de cela.

+0

@ Andrzej Doyle Merci, mais même sur le mode console il n'y a rien et son exception flottante que j'ai mis à jour dans la question – umar

+1

@umar OK, merci pour les commentaires - mais cette exception était ** essentiel ** information pour le problème que vous aviez. Si vous incluez tous les résultats/comportements pertinents lorsque vous posez des questions à l'avenir, vous obtiendrez des réponses plus précises plus rapidement, et tout le monde gagne. –

2

Cela n'aurait pas dû être difficile. Un NullPointerException se produit lorsque vous essayez d'effectuer une opération sur un null.

Vous avez un NullPointerException dans votre propre code (par opposition au code dans une bibliothèque). Tout ce que vous avez à faire est d'aller à cette ligne et voir ce que tout peut être null.

Dans la ligne

this.showStatus(formatter.format(now)); 

formatter est (le plus probable) null. C'est la raison du NullPointerException.

Je pense que stackoverflow rend les gens infiniment paresseux.

+0

+1 puisque c'est le vrai problème. Le 'formatter' n'est jamais assigné nulle part, donc * doit * être nul. (D'un autre côté, il s'agit là d'une autre situation où l'immutabilité aurait évité complètement la question «est-ce que c'est réglé ou pas»). (Oh, et encore +1 pour le petit texte avec le gros point.) –