Javaオブジェクトの層へのアクセス
Javaオブジェクトの層へのアクセス
GUIKitで提供されていた機能は,組込みのWolfram言語にネイティブのインターフェース構造およびコントロール関数で利用できるようになった.
GUIKit フレームワークは,状態にアクセスしたりInvokeMethod[{"widgetName","methodName"},arguments]を使ってJavaObjectインスタンスへのメソッドの呼出しを行ったりするためのPropertyValue[{"widgetName","propertyName"}] のようなWolfram言語関数を提供する.しかし,これはランタイムインターフェースを構築する任意のJavaObjectを操作するための標準的な J/Link 技術の使用を妨げるものではない.
Needs["GUIKit`"];ref = GUIRun[
Widget["Panel", {
Widget["Label", {"text" -> "こんにちは!"}, Name -> "myLabel"]
} ]
]次は、一般的なプラットフォームでこのインターフェースが表示するものである.
GUIScreenShot[ ref]GUIObjectの第1引数はルートウィンドウのJavaクラス,この場合はjavax.swing.JFrameインスタンスで,インターフェースの実行中にこのコンポーネントにメソッドの呼出しを行うことができる.
First[ref] @ isVisible[]First[ref] @ setTitle["Test"]次は,そのユーザインターフェースである(インターフェースのサイズが変更され,タイトル全体が表示されている.)
GUIScreenShot[ ref]WidgetReference[]は特別に登録されたインスタンスを検索する.そのようなユーティリティGUIObject関数もまた,インターフェース内の任意のオブジェクトに J/Link メソッドの呼出しを使って直接アクセスできるようにJavaObjectインスタンスを返す.
l = ref @ WidgetReference["myLabel"]l @ setText["new label"]GUIScreenShot[ ref]