我用Java创建了一个Swing游戏,该游戏在桌面上执行时可以正常工作。但是,由于不可预见的事件,我的老板现在要求将游戏变成一个applet,以便可以将其嵌入到网站中(不,JWS不是一种选择)。
以下是我将游戏转换为小程序所采取的步骤:
1)将我的主类更改为具有public void init()而不是public static void main(),并从Applet扩展了它
2)将myJFrame.java类更改为现在从Applet扩展,而不是从JFrame扩展。
我的小程序代码如下:
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代码用于嵌入小程序
<!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,因此如果我错过一个简单的步骤,我深表歉意。谢谢你的帮助。
对于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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句