Java应用程序不会显示,但解决方案必须在主类之外可以运行

时间:2010-12-17 03:54:22

标签: java multithreading applet runnable

我正在尝试制作简单的Java俄罗斯方块游戏。我正在关注一个教程 GameDev.net。我希望通过将可运行的Frame类保留在主类之外来而不是将所有内容放在一个类中,就像教程所说的那样(如果我这样做,代码可以工作)。

这段代码是我尝试执行以下操作(下面),我假设调用了runnable,但是由于某种原因,app不会显示。

有人可以澄清我做错了什么以及在将我的runnable保留在Frame类中时我需要做什么

Main.java类

import java.lang.String;

public class Main {
public static void main(String args[])
{
    //boolean victory = false;
    Frame bob = new Frame();
    bob.init();
}
}

Frame.java类:

import java.applet.*;
import java.awt.Graphics;

public class Frame extends Applet implements Runnable {
Thread t;
int i;

public void init()
{
    t = new Thread(this);
    t.start();
    i = 0;
}

public void run()
{
    while(true)
    {
      i++;
      repaint();

      try {
        t.sleep(1000/30);
      } catch (InterruptedException e) { ; }
    }
}

public void paint(Graphics g)
{
    g.drawString("i = "+i,10,20);
}
}

非常感谢帮助!

1 个答案:

答案 0 :(得分:1)

要运行applet,请创建一个HTML文档。

sample.html

<applet code="Frame" width="100" height="100"></applet>

现在在Web浏览器中打开“sample.html”文档或从命令提示符处打开,发出以下命令

>appletviewer sample.html