0

私は JTree を持っていますが、特定のケースでは、それを「ユーザー入力なしモード」に切り替えたいと考えています。このモードでは、ユーザーはツリーの選択を変更できません。ただし、現在の選択は変更されないままにしておく必要があり、プログラムで変更できる必要があります。

設定しようとしましたtree.setFocusable(false)->ユーザーはまだ選択を変更できます

クリックイベントを消費するを構築しMouseListenerます->ユーザーは引き続き選択を変更できます

試してみましたtree.setSelectionModel(null)->選択が表示されません

原理的にはできtree.setEnabled(false)ますが、そうすると木は灰色で醜くなります。

ユーザーが選択を変更できないようにする方法、またはJTree無効な状態で通常どおりに描画する方法についてのアイデアはありますか?

4

1 に答える 1

1

私はそのようなことをすると思います:

    tree.addChangeListener(new ChangeListener() {
        @Override
        public void stateChanged(ChangeEvent arg0) {
            TreePath path = ... // The path of the node you want to be selected 
            tree.setSelectionPath(path);
        }
    });

選択が変更されたら、必要なノードを再度選択します。

于 2012-12-11T16:13:50.890 に答える