【问题标题】:applet to Jframe小程序到 Jframe
【发布时间】:2014-04-22 23:18:48
【问题描述】:

我已经按照kilobolt 的教程制作了一个游戏(http://www.kilobolt.com/unit-2-creating-a-game-i.html)然后更改了它。我用过applet,但现在我想把它变成JFrame。

我做了什么:

1- 我已经导入和扩展了 JFrame 而不是 Applet。

2- 我已将 init 方法更改为构造函数并添加了

public static void main(String[] args)
{
    // Use the event dispatch thread to build the UI for thread-safety.
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            new AltMain(); //AltMain is the name of my main class.
        }
    });
}

我从某个地方复制了这段代码,但我不知道它的作用。我可能会改用这个:

public static void main(String[] args){
    new AltMain();
}

我做不到的:

这些需要一些改变:(我现在的首要任务)

base = getDocumentBase();

bg = getImage(base, "data/bg space.jpg");

GetImage 和 GetDocumentBase 给我“未定义的 AltMain 类型”错误。

我该如何解决这些问题?这些是否有任何 JFrame 等效项?此外,由于我无法运行该程序,我不确定是否需要其他任何东西。还有什么我必须做的吗?

这些是我的其他方法:

public void run(){
public void start(){
public void update(Graphics g){
public void paint(Graphics g){

我应该如何连接它们。

代码很长,所以我只是发布了一个摘要。如有必要,我可以编写更多代码。任何帮助,将不胜感激。提前致谢。

【问题讨论】:

    标签: java swing applet jframe


    【解决方案1】:

    您需要了解这些函数的作用,而不是仅仅复制粘贴它们并希望获得最好的结果。

    但主要思想是这样的:小程序(使用 JApplet)有几个被自动调用的函数。

    应用程序(使用 JFrame)只有 main() 方法作为入口点。它不会自动为您调用任何其他函数,因此如果您有现有函数(JApplet 函数),则必须从 main() 方法调用它们。

    【讨论】:

    • 感谢您的回答。如果我没有弄错 main 方法会创建一个 AltMain 类的实例,那么就会调用构造函数类。我只是不知道为什么 SwingUtilities.invokeLater(new Runnable() { 和它下面的 public void run() 在那里。我不认为 KeyPressed 和 keyReleased 方法是小程序的一部分。我应该将这些添加到主() 方法?由于其他错误,我还不能尝试。run(); start(); update(); paint(); 我不知道 update() 和 paint() 的参数必须是什么) 方法。
    • 您刚刚问了十几个问题,因此很难在评论中回答,但我坚持我的说法,您需要了解每种方法的作用。 SwingUtilities 确保您在 EDT 上运行。 keyPressed() 方法与 JFrame 或 JApplet 无关。它们是组件接收 KeyEvent 时自动调用的 KeyListener 的一部分。其他方法的错误是什么?您需要阅读基本教程以了解发生了什么。
    • 抱歉不清楚。我已经告诉了我的问题中的问题。它们是:getDocumentBasegetImage 给我错误。现在这些是我的首要任务。它们是小程序的一部分,现在不起作用。了解代码很重要,但是一旦代码开始工作,我通过尝试和更改代码来学得最好。如果我错了,请纠正我:update(Graphics g){paint(Graphics g){ 不是小程序的一部分。他们被repaint(); 呼叫。我想我可以在 init() 结束时调用 start()(它现在是构造函数),我可以在 start() 结束时调用 run()。
    • 错误是什么?你能在 JApplet 的 API 中找到 update() 和 paint() 吗?
    • getDocumentBasegetImage 分别给出“AltMain 类型的方法 getDocumentBase() 未定义”和“AltMain 类型的方法 getImage(URL, String) 未定义”错误。我不明白你所说的找到方法是什么意思。我已经检查过它并且 JApplet 拥有它们,但我不想使用 JApplet,除非它可以被 JRE 在可执行文件中使用(这就是我想从小程序切换到 JFrame 的原因。在运行结束时重新绘制() 方法似乎工作正常。
    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多