- PR -

AppletからPDFファイルを別ブラウザで呼び出すには?

1
投稿者投稿内容
未記入
会議室デビュー日: 2004/07/02
投稿数: 2
投稿日時: 2004-07-02 20:03
さっそくですが、現在Appletからボタンを押したタイミングで
PDFファイルを別ブラウザ(IE) で起動という処理を作っています。

その際、
コード:

URL ur = new URL("C:\\hoge\\test.pdf");
showStatus(ur.toString());
this.getAppletContext().showDocument(ur,"_blank");


としているのですが、getAppletContextがnullと来てしまいます
コード:

java.lang.NullPointerException
at java.applet.Applet.getAppletContext(Unknown Source)
at java.applet.Applet.showStatus(Unknown Source)
at example.client.TestForm.button1ActionPerformed(TestForm.java:169)
at example.client.TestForm.access[1code]
java.lang.NullPointerException
at java.applet.Applet.getAppletContext(Unknown Source)
at java.applet.Applet.showStatus(Unknown Source)
at example.client.TestForm.button1ActionPerformed(TestForm.java:169)
at example.client.TestForm.access$0(TestForm.java:123)
at example.client.TestForm$1.actionPerformed(TestForm.java:78)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.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)
[/code1](TestForm.java:123)
at example.client.TestForm.actionPerformed(TestForm.java:78)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.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)


色々なサイトでサンプルを見てみたんですが、urlしか指定していなかったのですが
この場合別ファイル(PDF)というのは呼べないものでしょうか?
どなたかご教授くださると幸いです

// 追記
このクラス自身でAppletContextがnullと
なってしまっているのですが、この場合どのようにして
回避すればいいのでしょうか・・・


[ メッセージ編集済み 編集者: 未記入 編集日時 2004-07-05 12:55 ]
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2004-07-03 10:00
getAppletContextがnullなのではなく、getAppletContextの中で nullへの
アクセスを行っているのですね。

Sun J2SDKの java.applet.Applet.javaを部分的に引用させてもらいますと、
コード:
    public AppletContext getAppletContext() {
	return stub.getAppletContext();
    }


ですから、唯一アクセスしているオブジェクト stubが nullだということになります。

さらに、同ソースのコメントには
コード:
// If stub field not filled in, applet never active


とあります。アプレットがアクティブでないということ?

引用:

アプレットは、start メソッドが呼び出される直前にアクティブになり、stop メソッドが呼び出される直前にアクティブでなくなります。


ので、もしかして、init() の中で処理しているとか?
aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 2004-07-03 10:01
ローカルのPDFファイルを表示ってのもなんですから、サーバ側に置いて、httpで見に行ったらどうですかね。
未記入
会議室デビュー日: 2004/07/02
投稿数: 2
投稿日時: 2004-07-05 12:52
Kissinger様>
処理としてはボタンが押されたタイミングの
ActionPerformedの中で行っています。

ただ、ボタンなどaddActionListener自体はinitの
中で各コンポーネント作成時に記述しているのですが
この記述だと、initタイミングとして認識されてしまう
ものでしょうか? satrtメソッドをオーバーライドし、
明示的にその中で記述した方がよいでしょうか?

また、ご意見から、現状のエベント処理に入った時点(又はinit)などで
プログラムからアクティブ状態する事は可能でしょうか?
setActiveのようなことを考えてドキュメント漁ってみたんですが
見当たらなかったんですが、上記方法可能なものでしょうか?


引用:

getAppletContextがnullなのではなく、getAppletContextの中で null


論点ずれて探してしまってたので、助かりました。

aa様>
すいません、情報不足でした。ウェブサーバ内に置いています。
現状ローカルサーバでやっていた為、おかしな記述になってしまいました(^^;

質問責めになってしまい申し訳ありませんが、ご意見などありましたら
よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)