带 Applet 的 java.lang.InstantiationException

标签 java exception applet

该程序应显示 1 个普通按钮 (a) 和 3 个单选按钮 (x,z,y)。当用户选择一个单选按钮并按下按钮 a 时,它应该将他重定向到一个网站。问题出在启动过程中。该窗口是空的,左下角有一条消息“启动:Applet 未初始化”。另外,我在控制台中收到“java.lang.InstantiationException”。

如果有任何帮助,我将不胜感激。

package nome.nonoriginale;

import java.awt.Button;
import java.awt.Checkbox;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.JApplet;

import com.sun.corba.se.spi.orbutil.fsm.Action;

public abstract class Linkers extends JApplet implements ActionListener
{
Button a = new Button("Go to");

URL libro1;
URL libro2;
URL libro3;

Checkbox x;
Checkbox z;
Checkbox y;

public void init()
{
    try
    {
        libro1 = new URL("http://www.reddit.com/");
        libro2 = new URL("http://www.youtube.com/");
        libro3 = new URL("http://www.ismatteirecanati.it/default.aspx?pag=0&lang=it");
    }
    catch(MalformedURLException e)
    {
        System.out.println("Link's broken, brah");
    }
    add(a);
    add(x);
    add(z);
    add(y);

    a.addActionListener(this);
}

public void ActionPerformed(Action e)
{   
    if(x.getState() == true)
        getAppletContext().showDocument(libro1);

    else if(y.getState() == true)
        getAppletContext().showDocument(libro2);

    else if(z.getState() == true)
        getAppletContext().showDocument(libro3);
}

}

最佳答案

该类无法实例化,因为它被声明为abstract。您需要从类声明中删除 abstract 关键字:

public class Linkers extends JApplet implements ActionListener

除此之外,您还可以通过实现以下方式来实现 ActionListener:

public void actionPerformed(ActionEvent e) {

您似乎错误地导入了 CORBA Action 类。

完成这些更改后,您将收到 NullPointerException,因为您的复选框未实例化。

不要将 AWT 与 Swing 组件混合使用 - AWT 是重量级的,会对 Swing 组件的绘制产生不利影响

所以你可以使用:

JCheckBox x = new JCheckBox();

关于带 Applet 的 java.lang.InstantiationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12680591/

相关文章:

c++ - C++异常分析工具

使用 Proguard DX SimException 本地 0000 : invalid 构建 Android

java - 尝试将字符串附加到 Java Applet 面板中的 TextArea 时出现 NullPointerException

java - 如何在Java中用零向左填充 double

带有 JPanel 的 Java 滚动 JScrollPane 到底部

java - 方法中没有 throws 声明的情况下抛出检查异常

Java 8 Update 20 缺少安全选项

java - 如何为每个正在执行的 Java 程序实现安全策略

java - 翻转频率可视化 - Java - 处理

Java Swing : Graphics2D rotation creating disgusting edges