将Java应用程序转换为applet时,我错过了哪一步?

时间:2014-07-28 22:27:45

标签: java japplet

我在java中创建了一个Swing游戏,在桌面上执行时可以正常工作。然而,由于不可预见的事件,我的老板现在要求将游戏变成小程序,以便它可以嵌入到网站中(不,JWS不是一个选项)。

以下是我将游戏转换为applet的步骤:

1)将我的主类更改为public void init()而不是public static void main(),并将其从Applet扩展

2)将myJFrame.java类更改为现在从Applet扩展,而不是从JFrame扩展。

我的applet代码如下:

import java.applet.Applet;

public class app extends Applet{

    @Override
    public void init() {
        myJFrame mjf = new myJFrame();
    }
}

import java.applet.Applet;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class myJFrame extends Applet{
private final MainMenu main;
private SidePanel side;

public myJFrame() {
    try  { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName() );} 
    catch (ClassNotFoundException | IllegalAccessException | InstantiationException | UnsupportedLookAndFeelException e) {}

    main = new MainMenu(this);

    add(main, "Center");

    setSize(1080,720);

    setVisible(true);
}
...
}

现在,我的index.php代码用于嵌入applet

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<object type="application/x-java-applet" name="psych-game" width="1080"height="720">
    <param name="code" value="app.java" />
    <param name="archive" value="PsychGame.jar" />
</object>

我没有收到错误消息,只是一个空白页。

这是我第一次使用applet,所以如果我错过了一个简单的步骤,我很抱歉。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

对于applet,你只能在将它传递给其他人之后将其扩展一次,例如:

import java.applet.JApplet;

public class app extends JApplet{

    @Override
    public void init() {
        myJFrame mjf = new myJFrame(this);
    }
}

然后为后续课程注意构造函数arg:

import java.applet.JApplet;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class myJFrame {
private final MainMenu main;
private SidePanel side;
private JApplet parent;

public myJFrame(JApplet ja) {
    parent = ja;
    ...
}
...
}

然后,课程中的所有用法都会附加parent.whatever