0

该程序应显示 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);
}

}
4

1 回答 1

1

该类在声明时无法实例化abstract。您需要abstract从类声明中删除关键字:

public class Linkers extends JApplet implements ActionListener

除此之外,您可以通过实施ActionListener来实施:

public void actionPerformed(ActionEvent e) {

看起来您Action错误地导入了 CORBA 类。

一旦进行了这些更改,您将获得一个NullPointerException,因为您的复选框未实例化。

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

所以你可以使用:

JCheckBox x = new JCheckBox();
于 2012-10-01T20:37:31.940 回答