Tadotter - Eclipse RCP版 (1.1.2.v20090921) | 2009-09-21 15:19 |
Tadotter - JavaFX版 (2.0.1) | 2009-07-06 11:19 |
javafx.stage.AppletStageExtensionのshowDocument関数は、 URLとtarget(ウインドウまたはフレームの)を指定して ブラウザを起動することができます。 ただし、この関数はアプレットとして動作しているときしか 効きません。
例:
AppletStageExtension{}.showDocument(url,"_blank");
javafx.stage.AppletStageExtensionのshowDocument関数は、 アプレットでのみ有効です。 では、標準起動及びWeb Start起動ではどうしましょう。 ここではjava.awt.Desktopのbrowse(URI uri) メソッドを使う方法を紹介します。 ただしDesktopクラスはJava6からのAPIなので、普通には呼び出せません。 JavaFX 1.2 SDKではJava6 APIを使えないからです。 以下の例はその問題をリフレクションで対応しています。
例:FXUtils.fx
import java.lang.Class; import java.lang.Throwable; import java.lang.reflect.Method; import java.net.URI; public function browse(uriAsString:String):Void{ try{ var cls:Class = Class.forName("java.awt.Desktop"); //public static synchronized java.awt.Desktop java.awt.Desktop.getDesktop() //を呼び出してインスタンスを取得します。 var method:Method = cls.getMethod("getDesktop"); var objDesktop = method.invoke(null); //public void java.awt.Desktop.browse(java.net.URI) throws java.io.IOException //を呼び出してデフォルトのブラウザを起動します。 method = cls.getMethod("browse", Class.forName("java.net.URI")); method.invoke(objDesktop,new URI(uriAsString)); }catch(e:java.io.IOException){ e.printStackTrace(); }catch(e:Throwable){ e.printStackTrace(); } }
上の関数を、呼び出す例が次の例です。アプレットで動作しているときは、 AppletStageExtensionを使い、そうでないときDesktop.browse()を使っています。
例:
if(__PROFILE__ == "browser"){ AppletStageExtension{}.showDocument(url,"_blank"); }else{ FXUtils.browse(url); }
[PageInfo]
LastUpdate: 2009-08-05 14:30:39, ModifiedBy: happyhills
[Permissions]
view:all, edit:login users, delete/config:members