繁体   English   中英

Jframe 未显示任何内容且“无法转换为 java.applet.Applet”

[英]Jframe not showing anything and "cannot be cast to java.applet.Applet"

我只想在我的空框架中添加一个按钮,这非常非常简单。

该框架没有显示任何内容,尽管程序运行,但 IDE 告诉我:”

java.lang.ClassCastException: Spots cannot be cast to java.applet.Applet
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:793)
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:722)
    at sun.applet.AppletPanel.run(AppletPanel.java:379)
    at java.lang.Thread.run(Thread.java:744)"

所以我为它扩展了 JApplet,它不再抱怨了,框架现在是灰色的,仍然没有。 另外,标题没有显示。

有趣的是,即使我完全复制了 Oracle 教程站点(官方): 教程站点上的示例代码,也会发生同样的情况并且它包含小程序。

请帮忙,非常感谢!!!

public class Spots{

private static void createAndShowGUI() {
    JFrame frame = new JFrame();
    JButton jButton = new JButton("Click Me");

    jButton.setSize(20,20);
    jButton.setVisible(true);

    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.add(jButton);
    frame.setSize(500, 500);
    frame.setTitle("Bar Code Scanner");

    frame.pack();
    frame.setVisible(true);

}

public static void main(String[] args){

    createAndShowGUI();



    }
}

对于遇到此问题的每个人 - 请检查您的 IDE 运行设置以查看它作为小程序或应用程序运行。 再次感谢您的热心帮助!

如果您正在制作小程序,您的代码甚至不应该有 JFrame 变量。 相反,在 init 方法中,将您的 JButton 添加到小程序的contentPane()或添加到添加到 contentPane 的 JPanel,就像任何教程都会告诉您的那样。

当然,如果您不尝试创建小程序,这将不成立,但是如果是这样,您为什么要像运行小程序一样运行它。 请为我们澄清这一点。


编辑
你在评论中问:

谢谢您的帮助! 但是如果我想用 Jframe 的方式来做呢? 因为我不想创建小程序所以我没有扩展 Japplet 或创建 init()。 但是 ide 抱怨“你需要扩展小程序”我的代码中是否有任何地方告诉它我正在创建一个小程序? 我不想:(

IDE 不应该关心您正在创建什么类型的类,只要它编译即可。 当您尝试运行代码时, JVM可能会抱怨它不是小程序,如果 1) 您尝试将它作为在某些 HTML 代码中调用的小程序运行,或者 2) 尝试使用 IDE 的小程序模拟器运行它。 如果是前者,请不要这样做。 将其作为独立程序运行。 如果是后者,请不要这样做。 告诉 IDE 您正在尝试运行 Java 程序,并确保您有一个有效的 main 方法。

文件名不能转换为 java.applet.Applet:检查点: 1. extends JFrame -> Extends JApplet 2. public constructor() -> public void init() 3. / public static void main(String[] args) { . .. } /. 这意味着不需要这种方法。 4. 完成以上所有操作后,保存并编译。 因为当你运行(appletviewer index.html)时,你需要filename.class。 这个文件名.class 应该是你已经完成 1~3 并且已经编译的那个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM