JavaでSWTGUIツールキットを使い始めています。TreeItemsにいくつかのデータを添付する必要があります。以前に使用した各ツールキットには、基本的なデータを含むための生のポインターまたはベースオブジェクト参照を含むツリーアイテムがありましたが、SWTのTreeItemで見つかりません。
TreeItemにデータを添付するにはどうすればよいですか?
これは簡単です。
TreeItem treeItem = new TreeItem(tree, SWT.NONE);
treeItem.setData("key", obj);
データを取得するとき:
Object obj = treeItem.getData("key");
答えは次のとおりです。純粋なSWTではできません。Standard Widget Toolkit
は、ウィジェット、その階層、および視覚的表現のみを処理します。ウィジェットへのデータのバインドは、SWT上に構築されたより高度なJFaceフレームワーク(特にデータバインディング機能)のトピックです。あなたはそれを習得するのに少し時間が必要です、しかしそれ故にあなたはEclipseプラットフォームの力を手に入れます。これにより、モデルをバインドして、両方向でも表示できます
(→モデルオブジェクトへの変更はすぐにUIに反映され、その逆も可能です)。
現在、アイテムの個別のリストを保持する必要があり、インデックスを操作する必要があります。
SWT 4.2では、そしておそらく以前のバージョンでは(私はチェックしませんでしたが)、クラスTreeItem
は、のサブクラスでありWidget
、とをWidget
持っsetData(Object o)
ていgetData()
ます。これを使用して、任意のアプリケーション固有のデータをTreeItem
インスタンスに添付できます。