【问题标题】:What step am I missing when converting my java app to an applet?将我的 Java 应用程序转换为小程序时,我缺少什么步骤?
【发布时间】:2014-07-28 22:27:44
【问题描述】:

我用 java 创建了一个 Swing 游戏,在桌面上执行时可以正常工作。然而,由于不可预见的事件,我的老板现在要求将游戏变成一个小程序,以便它可以嵌入到一个网站中(不,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>

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

这是我第一次使用小程序,如果我遗漏了一个简单的步骤,我深表歉意。感谢您的帮助。

【问题讨论】:

  • 你的第二个参数没有结尾。这只是一个错字吗?
  • @Takendarkk 在堆栈溢出时发布我的代码时出错,它不在源代码中。现在编辑我的问题,感谢您指出这一点

标签: java japplet


【解决方案1】:

在小程序的情况下,您只能扩展一次类,然后必须将其传递给其他人,例如:

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

【讨论】:

  • 如果使用 Swing,您应该使用 JApplet。使用Applet 是错误的。
  • @BoristheSpider - 感谢您的更正!上面反映的变化。
  • 不完全...接近但不完全。请在发布之前将您的代码通过 IDE 或编译器。
  • 另外,您将小程序扩展了两次(与您的注释相矛盾)!感谢您的回答,我将立即实施。
  • @Feek - 确认!你是对的 - 对不起,伙计们。一时兴起回答了这个问题,因为我记得几年前自己遇到过这个麻烦。显然有点生疏,甚至对我所知道的东西草率!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多