在新窗口中打开URL Java

时间:2009-07-31 18:46:00

标签: java applet

我正在尝试创建一个简单的类来打开一个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(未知   源)

2 个答案:

答案 0 :(得分:1)

由于你没有发布堆栈跟踪,我猜:

您将此类用作独立的Java应用程序,因此没有定义applet上下文。

我猜对了吗?

答案 1 :(得分:0)

使用Desktop类。

Desktop.getDesktop()。browse(新网址(“http://google.com”)。toURI());

您无法在浏览器之外使用小程序。

相关问题