2

1 つのクラスから 2 つの動くオブジェクトを作成してみます。それらを制御したいのですが、JApplet がスレッドで開きません。

私のコード:

import java.awt.Graphics;
import javax.swing.JApplet;

class RunnableThread extends JApplet implements Runnable{

    Thread runner;
    String name;

    public RunnableThread(String namex){
        name=namex;
    }    

    public void init(){
        setSize(200,300);
    }

    public void paint(Graphics g){
        g.drawLine(20, 20, 50, 50);
    }

    public void run(){  
        System.out.println("test"+name);            
    }      
}


import java.util.logging.Level;
import java.util.logging.Logger;


public class RunnableTest{    
    public static void main(String args[]){
    RunnableThread bt1=new RunnableThread("test 1"); 
    RunnableThread bt2=new RunnableThread("test 2");     
    Thread btt1=new Thread(bt1);
    Thread btt2=new Thread(bt2);
    btt2.start();
    btt1.start();    
    } 
}
4

2 に答える 2

3

mainメソッドを介してJAppletを実行することはできません。アプレットでバックグラウンドスレッドを実行する前に(これは実行できます)、まずアプレットのチュートリアルを読んで、アプレットを作成して実行する方法を確認してください。

単純なアプレットを機能させてこれに戻りたい場合は、JAppletクラスにRunnableを実装させるのではなく、その責任を別のクラスに委任してください。

ここから始めてください:アプレット入門

于 2012-05-22T13:33:10.427 に答える
1

そのように JApplet をインスタンス化することはできません。アプレットは main メソッドなしで実行できますが、そうしている方法だけではありません。アプレットをアプレットとして、およびアプリケーションとして実行する方法に関するよりユーザーフレンドリーなガイドについては、このチュートリアルをお読みください。これは非常にユーザーフレンドリーで、アプレットを非常によく説明しています。

于 2012-05-22T13:40:40.310 に答える