2009-07-31 72 views
0

我試圖做一個簡單的類來打開一個URL,但是當我運行它時,它會在我初始化Applet時立即給出一個空指針異常。這裏是類:在新窗口中打開URL Java

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();

誰能解釋什麼,我做錯了什麼?謝謝。

編輯:這是完整的堆棧跟蹤。

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at java.applet.Applet.getAppletContext(Unknown Source) at com.agentsheets.component.URLOpener.openURL(URLOpener.java:21) at com.agentsheets.component.ComponentController.actionPerformed(ComponentController.java:2510) at javax.swing.JComboBox.fireActionEvent(Unknown Source) at javax.swing.JComboBox.setSelectedItem(Unknown Source) at javax.swing.JComboBox.setSelectedIndex(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

+2

你可以發佈確切的異常堆棧跟蹤? – akarnokd 2009-07-31 18:50:08

回答

1

既然你不張貼堆棧跟蹤我會想:你使用這個類作爲一個獨立的Java應用程序

,因此,沒有定義applet上下文。

我猜對了嗎?

0

使用Desktop類。

Desktop.getDesktop()。browse(new URL(「http://google.com」).toURI());

您不能在瀏覽器外使用小程序。

+0

我曾嘗試過,但得到了「線程中的異常」AWT-EventQueue-0「java.lang.NoClassDefFoundError:java/awt/Desktop」錯誤,並且警告說從不使用java.awt.Desktop。 – Mike2012 2009-07-31 19:06:52