2011-07-12 17 views
0

アプレットが実行されているが表示されていない限り、アプレットにランダム番号を表示したい。親切にいただきました!どのようにあなたがそれを表示したいか、そしてそのコードのビット、あなたがこれを達成することになると思いますか?コードアプレットにランダム番号を表示

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(); 
     } 
    } 
} 

とその次の例外を除いて、フローティング

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 

答えて

1

で絞るガイド

現時点では、乱数を作成してその番号のSystem.out.printlnを呼び出していることがわかります。これでの番号がコンソールに出力されますが、アプレットには表示されません。

この番号を表示するには、paint(Graphics g)メソッドにロジックを入力する必要があります(例:g.drawString())。しかし、テキストを出力する方法はたくさんあります。これは、あなたがすでに持っているものにどのようにしたいのかによって異なります。つまり、この質問に対して正しい、具体的な答えを1つ与えることは妥当ではありません。

出力を制御する方法を説明し、その結果に基づいて固有のの質問をもう一度投稿するアプレットチュートリアルをもう一度見てください。

+0

@ Andrzej Doyleご質問ありがとうございます。コンソールモードでも、質問に更新した浮動例外はありません。 – umar

+1

@umarフィードバックに感謝します。しかし例外は**必須です**情報あなたが持っていた問題のために。将来的に質問をするときに関連するすべての出力/動作を含めると、より正確な応答がより迅速に得られ、誰もが勝ちます。 –

2

これは難しいことではありません。 nullで操作しようとすると、NullPointerExceptionが発生します。

あなたのは、コード(ライブラリ内のコードではありません)にNullPointerExceptionがあります。あなたがしなければならないことは、その行に行き、おそらくすべてがnullであることができるかを見ることです。

ラインで

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

formatternull(最も可能性が高い)です。これがNullPointerExceptionの理由です。

私はstackoverflowが無限に怠け者になっていると思います。

+0

+1これは本当の問題です。 'formatter'はどこにも決して割り当てられないので、* must *はnullになります。 (一方で、これは、不変性が「それは設定されているかどうか」の質問をすべて回避したさらに別の状況です)。 (ああ、大きなポイントの小さいテキストの場合はもう一度+1してください) –

関連する問題