1

SWT ツリーに問題があります。私の状況は次のようなものです: TreeItems も含む多くの TreeItems (ログ エントリ) を含む SWT ツリーがあります。これらのログ エントリには非常に長いメッセージが含まれており、TreeColumns にはまったく表示できませんでした。だから私の考えは、ツリーにリスナーを追加することでした。これにより、DoubleClick で新しいダイアログが開き、エントリの詳細が表示されます。ここまでは順調ですね。アイテムをダブルクリックすると、機能します。BUT:親アイテムをダブルクリックすると、展開されます(そしてそれは良いことです)が、ダブルクリックリスナーもアクティブになり、ダイアログが開きます。それは、私が欲しいものではありません。

したがって、この問題には 2 つの解決策があります。1) ツリーがダブルクリックで自動的に展開/折りたたみされないようにして、自分でメソッドを実装するか、2) アイテムが展開され、イベントを中止する必要があることを認識します。

私は 1 か 2 のやり方をよく知りません。皆さんは知っていますか?

前もって感謝します。

4

3 に答える 3

1

を使用している場合はTreeViewerIOpenListener

treeViewer.addOpenListener(new IOpenListener() {

      @Override
      public void open(OpenEvent event) {
}
}
于 2013-02-21T22:35:32.910 に答える
1

上記の回答はかなり偽物であることがわかりました。以下は私のために働いた:

treeViewer.getControl().addListener(SWT.MeasureItem, new Listener(){
    @Override
    public void handleEvent(Event event) {
    }});

意味がありません。問題の本当の原因の説明、および上記が修正である理由については、Eclipse コミュニティ フォーラムのこのディスカッションを参照してください: Disabling Treeviewer doubleclick expand/collapse

于 2013-11-04T08:17:10.553 に答える
0

はるかにうまく機能する別のソリューションがあります。

「sambi reddy」のソリューションの問題は、ツリーがダブルクリックで拡大できず、左側の十字をクリックしても拡大できなかったことです。

私の解決策 (うまくいきます) は簡単でした。ツリーの展開/折りたたみをリッスンする TreeListener を追加し、MouseDoubleClick-Listener から展開/折りたたみの実装を削除しました。

JFace TreeViewer はありません - 正常に動作します。

于 2013-03-11T14:49:15.480 に答える