問題タブ [jtree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
119 参照

java - 複数のトップレベルTreeNodeが可能ですか?

初めてJTreeを使用します。複数のトップレベルのTreeNodeを持つことは可能ですか?ありがとう

0 投票する
3 に答える
5274 参照

java - JCheckBox を使用した JTree の作成を支援する

各ノードに 2 つのチェックボックスとラベルを含む JTree が必要な珍しい状況があります (潜在的なチェックボックスがいつチェックされるかを通知するリスナーを追加する機能を備えています)。また、ルート ノードに同じレイアウト (2 つの JCheckBoxes と JLabel を持つ JPanel を作成することを意味すると想定しています) を持たせ、ルートにある 1 つがチェックされている場合はツリーの下にあるすべてのチェックボックスを選択できるようにする必要があります。

ガイダンスや例はありますか?ここで以前の質問と関連する例を確認しました...そのうちのいくつかは、ツリーを「見る」ようにすることを可能にしましたが、その背後にあるアクションを実装するための指示を与えませんでした。

ありがとう!

0 投票する
5 に答える
5839 参照

java - JTree はリアルタイムで更新されますか?

JTree を毎秒更新するためのスレッド化されたソリューションを探しています。

基本的に、私は...

  • 外部ファイルのインポート
  • それから列挙を作成する
  • 列挙からツリーを構築する

外部ファイルはランダムに変更される可能性があり、ツリー内のデータはこの変更を適切なタイミングで表す必要があります。JTree が (パネル経由で) あるコンテンツ ペイン全体を再描画せずにツリーを再描画するにはどうすればよいでしょうか?

ありがとう!

0 投票する
2 に答える
1316 参照

java - Swing:カスタムコンポーネントでのリスナーの実行順序

私のカスタムコンポーネントは、JTree内の3つので構成されていJPanelます。一度に1つだけを選択する必要があるため、前に選択したを呼び出すをそれぞれにJTree追加しました。TreeSelectionListenerclearSelectionJTree

選択処理リスナーが常に最初に実行されるように、他TreeSelectionListenerのを追加したいと思います。JTreeすべてを1つにまとめたくないTreeSelectionListener

私は何をすべきか?前もって感謝します!

0 投票する
1 に答える
379 参照

java - Swing: 選択解除イベントを無視するにはどうすればよいですか?

私のカスタム コンポーネントは、JTree内の 3 つので構成されていJPanelます。一度に1 つだけ選択する必要があるため、以前に選択したを呼び出すそれぞれに をJTree追加しました。(詳細については、こちらを参照してください)。TreeSelectionListenerclearSelection()JTree

それはうまくいきますが、 aが選択解除されTreeSelectionListenerたときに s がトリガーされるのを防ぐ必要があります。選択イベントと選択解除イベントを区別する簡単な方法で十分です。JTree

前もって感謝します!

0 投票する
3 に答える
4707 参照

java - MouseEventの前のJavaJTreevalueChangedイベント

これが状況です。タブ付きペインのあるjFrameがあり、タブ内に2つのjTableとjTreeがあります。ユーザーがCtrl/Shift +クリックを使用するか、通常のクリックを使用するかに基づいて、テーブルとツリーの間で選択を連鎖できるようにしたいと思います。(Ctrlキーを押しながら最初のテーブル/ツリーをクリックすると、全体の選択に追加されます。通常のクリックを使用すると、他のテーブル/ツリーの選択がクリアされます)。現在、JavaのjTreeコンポーネントに問題があります。TreeSelectionListenerとMouseListenerを追加し、両方のインターフェイスを実装するクラスを追加しました。これをMyBigListenerと呼びます。すなわち

私の計画は、ユーザーがctrl / shift +クリックを使用する場合にブールフラグを設定することでした。これは、ツリー選択リスナーによって実装されたvalueChanged(TreeSelectionEvent e)中に確認できます。valueChanged TreeSelectionEventsの前にマウスイベントを処理できるようにしたいのですが、問題は、valueChangedtreeSelectionイベントの後にマウスイベントを受け取ることです。これは、マウスを押すことによって選択の変更が実際に開始されたときに、マウスを押すイベントが発生する前に選択の変更を受け取ることは私には奇妙に思えます。(私はすでにブールフラグ設定を同期しました。これは皮肉なことに、イベントの順序の誤りを強調するのに役立ちました。)

keyListenerを追加するなどの代替手段をすでに試しましたが、フォーカスが別のフレームにある場合は機能しません。これは、ユーザーがCtrlキーを押しながらjTreeをクリックすると、フォーカスと起動の両方を受け取るようになります。 valueChanged選択イベント。

助けていただければ幸いです、ありがとう!

--編集--@akf タブ付きペインに個別のjTableとjTreeがあり、ノードグラフのデータの要約/コントロールパネルとして機能します。タブ付きペインでこれらのコンポーネントを使用して、別のjFrameに表示されるグラフを調整して選択しています。個別に、各テーブルは、jTreeと同様に、その選択に対して問題なく機能します。トリッキーなのは、ペイン間の調整です。これは、jTableコンポーネントでこれまでのところ正常に機能します。これは、Shift / Ctrlボタンが押されているかどうかを確認できるMouseEventの結果として新しい選択を起動し、新しい選択を作成して、すべての間で選択を調整する親フレームに渡すためです。ペインを作成し、最終的な選択をグラフに送信します。ただし、親は、選択範囲をペイン間でチェーンする必要があるのか​​、それとも他のペインを押しつぶす必要があるのか​​を知る必要があります。jTablesを使用すると、再び問題ありません。マウスクリックの結果として選択の変更を起動するためです。私はいくつかの強制的な選択を行っているので、jTreeはもっと問題です。ブランチをクリックすると、すべての葉が選択範囲に強制されます。これを行うにはTreeSelectionListenerを実装する必要がありましたが、実現された変更に対してvalueChanged(TreeSelectionEvent)のみを取得します。ctrl+clicksとshift+clicksをリッスンするためにmouseListenerを追加しましたが、イベントが常に同じ順序で発生するとは限らないようです。少なくともこれまでのところ、mousePressedイベントの前にvalueChangedイベントを受け取っているので、ctrlかどうかを確認します。 +選択がすでに変更された後、発生した投稿をクリックします。これを行うにはTreeSelectionListenerを実装する必要がありましたが、実現された変更に対してvalueChanged(TreeSelectionEvent)のみを取得します。ctrl+clicksとshift+clicksをリッスンするためにmouseListenerを追加しましたが、イベントが常に同じ順序で発生するとは限らないようです。少なくともこれまでのところ、mousePressedイベントの前にvalueChangedイベントを受け取っているので、ctrlかどうかを確認します。 +選択がすでに変更された後、発生した投稿をクリックします。これを行うにはTreeSelectionListenerを実装する必要がありましたが、実現された変更に対してvalueChanged(TreeSelectionEvent)のみを取得します。ctrl+clicksとshift+clicksをリッスンするためにmouseListenerを追加しましたが、イベントが常に同じ順序で発生するとは限らないようです。少なくともこれまでのところ、mousePressedイベントの前にvalueChangedイベントを受け取っているので、ctrlかどうかを確認します。 +選択がすでに変更された後、発生した投稿をクリックします。

現在、保留中の選択の変更を投稿してから、MouseListenerにそれを取得してチェーンに送信させていますが、これらのイベントが同じ順序で発生することが保証されていない場合、ある時点で失敗します。遅延器を実装することも私を間違った方法でこすります。

これまでの助けに感謝します。

--編集2--@ykaganovich

fireValueChangedメソッドをオーバーライドする方が、物事を進める正しい方法に近いと思います。どのアクションが他のコンポーネントへの「連鎖」選択を引き起こすかについての私の定義に応じて、valuedChangedメソッドが起動する前に何が起こっているかについてのコンテキストを収集する必要があります。これは基本的に、誰がそれをトリガーするかによってそれが何を意味するかを定義できるすべての場合に自分でそれを呼び出すことを意味します。つまり、マウスイベントが原因で、Ctrlキーが下がっている場合は、設定(解釈)する必要があるものを設定してから起動します。キーボードイベントが原因で変更される場合は、もう一度、設定する必要があるものを設定してから起動します。イベントが発生したときの状況がまだわからないため、TreeSelectionModelが進むべき道ではないと思います。これは、これを行うためにjTreeの一部を書き直す必要があることを意味すると思いますが、私は それがどうなるか見てみましょう。ありがとう。

0 投票する
1 に答える
642 参照

java - Java ツリー ノードの詳細

JTree を使用してツリーを構築しました。ノードの詳細を取得したいと考えています (ここに描かれたフレームに表示されるように)。

0 投票する
4 に答える
2986 参照

java - DefaultMutableTreeNodeオブジェクトへの文字列変数?

String変数をDefaultMutableTreeNodeオブジェクトに変換することは可能ですか?説明してください。コンテクスト:

これが私が書いたコードです。これは、BreadthFirstSearch方式でツリーをトラバースする列挙内で使用されます。そして、2nf行は私にこのエラーを与えます:

0 投票する
2 に答える
6617 参照

jtree - Jtree へのドラッグ アンド ドロップ サポートの追加

JTree アプリケーションにドラッグ アンド ドロップのサポートを追加したい

カスタム DefaultMutableTreeNode サブクラスを作成しました

デフォルトの TreeCellRenderer を持っています

何を追加する必要がありますか? どこに追加する必要がありますか?

0 投票する
5 に答える
6961 参照

java - JTree でのノードの配置

ユーザーがノードをドラッグ/ドロップまたは再配置できるJTreeがあります。保存時に、ファイルタイプのノードがフォルダータイプのノードの前に表示されるようにノードを再配置する必要があります。ファイル/フォルダー名を並べ替える必要はありません。

ユーザー ツリー:

結果のツリー:

以下のコードがありますが、うまくいきましたが、それが適切な方法なのか、それとも適切な方法なのかはわかりません。2 つの解決策のどちらが優れているか、または別の方法を提案できますか。

どうもありがとうございます。

解決策 1:

解決策 2: