15

次の違いは何ですか:

  1. TreeViewer&Tree
  2. TableViewer&Table
  3. TreeViewerColumn&TreeColumn
  4. TableViewerColumn&TableColumn

ビューアと通常のウィジェットをいつ使用するのですか?

PS:それらを理解するための良いリソースを見つけるのを手伝っていただければ、とても助かります。よろしくお願いします。

4

1 に答える 1

26

質問に「JFaceはSWTに何を追加しますか?」というタイトルを付けることができます。

ビューアはJFaceから、ウィジェットはSWTからです。

要約すると、JFaceを使用すると、ウィジェットを簡単に操作してGUIに挿入できます。JFaceは、静的ウィジェットに動作を追加するためにSWTウィジェット要素を操作するという煩わしさから解放されます。SWTはリスナーを提供するだけです。JFaceはこれらのリスナーを使用して、実世界のモデルとそのSWT表現の間のマッピングに集中できるようにします。

あなたがリストした特定の例でそれを見てみましょう。

  1. 標準のSWTウィジェットを作成する場合は、ツリーのコンテンツを記述し(1つ以上の最上位アイテムを設定し、いくつかのTreeItemを各ルートにフックし、場合によっては選択リスナーを追加します)、すべての遷移を管理する必要があります。そのツリーにはロジックがほとんど組み込まれていません。折りたたみ/展開と選択リスナーだけです。限目。
    それは静的ツリーになります。
    TreeViewerを使用すると、そのツリーにさまざまな種類の動作を挿入できます。つまり、ツリーの設定方法、フィルタリング方法、TreeItemのラベル付け方法です。
    これを行うには、適切に指定されたインターフェイスを満たすクラスを登録します(たとえば、ILabelProviderを使用すると、TreeItemラベルをフォルダー内のファイル名にマップできます)。
    TreeViewerがなければ、適切なレスポンシブツリーを構築するのは大変な作業になります。要約すると、基礎となる実世界の階層モデルをSWTツリー表現に簡単にマッピングできます。

  2. TableViewerについても同じことが言えます。TableViewerを使用すると、テーブルにカスタム動作を追加できます。たとえば、セルをどのように編集しますか。

  3. TreeViewerColumn。ずっと前(3.3より前)、SWTツリーには列がありませんでした。ツリーには列がありませんでしたテーブルには列がありましたが、展開/崩壊しませんでした。3.3以降、ツリーに列を追加できます。上記と同様の理由でTreeColumnをTreeに追加するだけでなく(まだ実行する必要があります)、TreeViewerColumnをTreeViewerに追加することで、これをより適切に行うことができます。列セルのコンテンツを編集するためのサポートを追加できます。そして、列にデータを入力できます(ラベルプロバイダーを再度作成することにより)。

  4. TableViewerColumn。TableViewersについても同じことが言えます。エディションとコンテンツの管理が追加されます。

SWT / JFaceのドキュメントについては、をご覧ください。

  1. SWTに属していないJFaceに属する視聴者は、先に進むために、GoogleでJFaceチュートリアルを検索すると、多くの例が見つかります。

  2. スティーブ・ノースオーバーの本(父SWT)「SWT:標準ウィジェットツールキット、第1巻」(AFAIKにはまだ第2巻はありません)。

  3. EricClaybergとDanRubeによる「Eclipse:BuildingCommercial-QualityPlug-ins」。エリックは現在GoogleVPであり、 WindowBuilderProの父です。

  4. SWTスニペットは、SWTオブジェクトをマスターするためのファストトラックでもあります。

  5. 他の良い本は次のとおりです

    • RobWarnerとRobertHarrisによる「SWTとJFaceの決定的なガイド」
    • 「マニングのSWT/JFAceの動作」
于 2011-02-26T08:13:10.260 に答える