Previous | Next | Trail Map | Writing Applets | アプレットを仕上げる


アプレットを出荷する前に

注意! アプレットを世界中に知らせる前に、以下の問いの答がすべてイエスであることを確認すること。

  1. デバック出力を削除または無効にしたか?

    デバッグ出力 (一般に、System.out.println() で作成される) は、作成者にとっては有効でも、ユーザにとっては紛らわしいか、迷惑なものであるこ とがほとんどである。 ユーザにテキストのフィードバックをする必要がある場合は、アプレットの表示エリア内で行うか、またはウィンドウ下部のステータス領域 で行うようにする (Applet の showStatus() メソッド参照)。

  2. アプレットは、画面から見えなくなったときに実行を停止するか?

    ほとんどのアプレットは、ブラウザがアイコン化されたり、ブラウザがそのアプレットを含まないページを表示しているときは、CPU 資源を使用すべきではない。 作成したアプレットのコードが明示的にスレッドを始動していないのであれば問題ない。

    しかし、アプレットのコードがスレッドを始動している場合は、どうしても必要な理由がないかぎり、 アプレットがスレッドを停止し破棄する (null にセットすることによって行う) ように stop() メソッドを実装しておくべきである。次に例を示す。

    public synchronized void stop() {
        if (refresh != null) {
            refresh.stop();
            refresh = null;
        }
    }

  3. アプレットが、たとえばサウンド再生や動画表示などユーザに迷惑をかける可能性のある処理を行う場合、ユーザがその動作を停止させられるようになっているか?

    ユーザの立場を常に思いやり、 ページを出なくとも、アプレットの手順の中で停止できる方法をユーザに用意 しておくこと。 ほかのやり方ではマウスクリックに応答しないアプレットでは、マウスクリックによって迷惑なスレッドを一時停止したり再開したりできるように mouseDown() メソッドを実装するとよい。 次に例を示す。

    boolean threadSuspended = false; //インスタンス変数
    
    public boolean mouseDown(Event e, int x, int y) {
        if (threadSuspended) {
            myThread.resume();
        } else {
            myThread.suspend();
        }
        threadSuspended = !threadSuspended;
        return true;
    }


Previous | Next | Trail Map | Writing Applets | アプレットを仕上げる