2012-05-22 66 views
2

我尝试从一个类创建两个移动对象。我想控制它们,但JApplet不打开线程。带多线程的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();  
    } 
} 

回答

3

您无法通过的主要方法运行JApplet的。在尝试在applet中执行后台线程之前(这可以完成),请先阅读applet教程,以了解如何创建和运行applet。

当你得到你的简单小程序的工作,并希望回到这个,不要让你的JApplet类实现Runnable,而是委托给另一个类的责任。

请从这里开始:Getting Started with Applets

1

你不能实例化一个JApplet的那种方式。一个小程序可以在没有主要方法的情况下运行,而不是你如何这样做。有关如何将applet作为applet运行和作为应用程序的更多用户友好指南,请阅读this tutorial它非常友好,并且很好地解释了applet。