我正在尝试创建一个简单的类来打开一个URL但是当我运行它时,它会在我初始化Applet时立即给出一个空指针异常。这是班级:
package com.agentsheets.component;
import java.net.*;
import java.applet.*;
public class URLOpener extends Applet{
public void openURL(String inputURL) {
try {
AppletContext applet = getAppletContext();
URL url = new URL(inputURL);
applet.showDocument(url, "Ristretto");
}
catch (MalformedURLException e){
System.out.println(e.getMessage());
}
}
}
我这样称呼它:
URLOpener opener = new URLOpener();
String URL = "http://somewebsite";
opener.openURL(URL);
它在行AppletContext applet = getAppletContext();
任何人都可以解释我做错了什么吗?感谢。
编辑:这是完整的堆栈跟踪。
线程“AWT-EventQueue-0”中的异常 java.lang.NullPointerException at java.applet.Applet.getAppletContext(未知 来源)at com.agentsheets.component.URLOpener.openURL(URLOpener.java:21) 在 com.agentsheets.component.ComponentController.actionPerformed(ComponentController.java:2510) 在 javax.swing.JComboBox.fireActionEvent(未知 来源)at javax.swing.JComboBox.setSelectedItem(未知 来源)at javax.swing.JComboBox.setSelectedIndex(未知 来源)at javax.swing.plaf.basic.BasicComboPopup中的$ Handler.mouseReleased(未知 来源)at java.awt.AWTEventMulticaster.mouseReleased(未知 来源)at java.awt.Component.processMouseEvent(未知 来源)at javax.swing.JComponent.processMouseEvent(未知 来源)at javax.swing.plaf.basic.BasicComboPopup中的$ 1.processMouseEvent(未知 来源)at java.awt.Component.processEvent(未知 来源)at java.awt.Container.processEvent(未知 来源)at java.awt.Component.dispatchEventImpl(未知 来源)at java.awt.Container.dispatchEventImpl(未知 来源)at java.awt.Component.dispatchEvent(未知 来源)at java.awt.LightweightDispatcher.retargetMouseEvent(未知 来源)at java.awt.LightweightDispatcher.processMouseEvent(未知 来源)at java.awt.LightweightDispatcher.dispatchEvent(未知 来源)at java.awt.Container.dispatchEventImpl(未知 来源)at java.awt.Window.dispatchEventImpl(未知 来源)at java.awt.Component.dispatchEvent(未知 来源)at java.awt.EventQueue.dispatchEvent(未知 来源)at java.awt.EventDispatchThread.pumpOneEventForHierarchy(未知 来源)at java.awt.EventDispatchThread.pumpEventsForHierarchy(未知 来源)at java.awt.EventDispatchThread.pumpEvents(未知 来源)at java.awt.EventDispatchThread.pumpEvents(未知 来源)at java.awt.EventDispatchThread.run(未知 源)
答案 0 :(得分:1)
由于你没有发布堆栈跟踪,我猜:
您将此类用作独立的Java应用程序,因此没有定义applet上下文。
我猜对了吗?
答案 1 :(得分:0)