此程序应显示1个普通按钮(a)和3个单选按钮(x,z,y)。当用户选择一个单选按钮并按下按钮a时,它应该将他重定向到一个网站。问题出在发布期间。窗口是空的,在左下角有一条消息“开始:小程序未初始化”。另外,我在控制台中得到“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);
}
}
答案 0 :(得分:1)
无法实例化类,因为它已声明为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();