该程序应显示 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/