問題タブ [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 投票する
2 に答える
13234 参照

java - JTree のノード イメージを動的に変更する

以下に示すように、CustomCellRendererを使用してJTreeのノードを表示し、ノードで画像を表示しています:-

私の要件は、何らかの外部アクションでノードのイメージを変更することです。JTree のモデルをリロードしようとしていますが、以下に示すように機能しません:-

どこが間違っているのですか??????

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

java - JTree ノードのラベルは頻繁に変更されますが、幅はキャッシュされます

現在、カスタム TreeCellRenderer を使用して、JTree のラベルとアイコンの変更を処理しています。問題は、いくつかのノードでテキストを変更する必要があるときに発生します。TreeCellRenderer は、新しいテキストが表示されるという点でうまく機能します。ただし、最初のテキストの幅はキャッシュされ、更新されません。TreeCellRenderer で getPreferredSize をオーバーライドしてハッキングしようとしましたが、html 文字列があるため、正しく機能していません。タグを解析して幅を取得しようとしましたが、まだ完全ではありません。私は SwingUtilities と FontMetrics を使用しました。

ノードを変更するには、ツリーのバッキング DefaultTreeModel.nodeChanged(TreeNode) を使用するのが適切な方法のようです。ただし、変更が必要なノードへのアクセスを処理するには、追加のデータ構造が必要です。個人的には、変更が必要なノードだけを変更したいと考えています。しかし、更新が必要なすべてのノードを見つけるには、別のデータ構造が必要になります。この状況でバッキング JLabel のサイズ キャッシングを回避する最善の方法は何ですか?

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

java - Java: 遅延削除を使用して JTree から項目を切り取る

JTree に Drag'n'Drop と CCP を実装しました (Transferable クラスと TransferHandler クラスを作成しました)。
デフォルトでは、Cut アクション (CTRL-X または SHIFT+DELETE キー) は JTree (JTreeModel) から項目を削除しますが、グレーでマークしてPaste アクションの後でのみ削除したいだけです。
アイテムを削除しないようにカット アクションを作成するにはどうすればよいですか?

私はswing DnDの魔法をすべて知っているわけではありませんが、CutアクションはTransferHandler.getCutAction()に実装されているようです

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

java - java swing - JTree ノードに色を追加する

チェックボックスを使用して JTree をレンダリングする次のレンダラーを作成しました。別のノードに別の色とアイコンを追加したいと考えています。どうすればいいのですか?私を助けてください。前もって感謝します。

}

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

swing - JavaSwingのJTreeコンポーネント

JTreeSwingのコンポーネントでノードとルートのアイコンを変更するにはどうすればよいですか?

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

java - JTreeに色を設定することはできますか?

木を作成しましたが、色を設定していることに気づいていません。

JTreeで色を設定することはできますか?

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

java - カスタムJavaJTreeの実装

2 JTreeJTree1と。がありJTree2ます。ノード(国、都市、色、青など)はすべてJCheckboxesとして実装されるため、ユーザーは対応するチェックボックスを選択することで、各都市または国全体の特定の色を選択できます。

問題:

Q1。国や都市ごとに色を選べるようにしたいと思います。つまり、ユーザーがcity1.1青と紫のcity2.1色と赤の色を使用したい場合は、最初にcity1.1チェックボックスを選択してから青と紫を選択する必要がありますcity2.1。その後、を選択すると、青と紫のチェックボックスが自動的に選択解除され、次のようになります。ユーザーはの色を選択できますcity2.1。ただし、ユーザーがcity1.1もう一度選択すると、JTree2city1.1で選択した色(buleとviolet)が表示されます。

  • したがって、この目的のために、JTree(チェックボックスとしてノードを使用)を実装するための正しいオプションですか、それとも他のオプションを使用する必要がありますかJComponent

  • JTreeが正しいオプションである場合、各都市の色をどのように思い出すことができますか?

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

swing - オブジェクトのJTree?

作成されたクラスのインスタンスを表示する動的 Jtree を実装するにはどうすればよいですか?

たとえば、アプリで新しい Book(name) を作成できます。すべての本には、チャプター = チャプターの ArrayList を指定できます。そして今、それからどのようにjtreeを行うことができますか?

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

java - Java Swing - TreeModel で JTree を使用する必要があります - MVC デザイン パターン

JTreeJava Swing デスクトップ アプリケーションで使用します。私はそれについて読みMVC Design pattern、それによると、Modelのクラスを使用して、のデータモデルをそのプレゼンテーション部分からSwing Components分離する必要があります。JComponent

だから私の簡単な質問は次のとおりです。

  • JTree(TreeModel newModel)

  • JTree(Object[] value)

  • JTree(TreeNode root)

  • JTree(Vector<?> value)

  • JTree(HashTable<?, ?> value)

を作成するための上記のオプションのうちJTree

Q1. パターンJTree(TreeModel newModel)を適用するために常に使用する方が良いですか?MVC

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

java - フォントが変更されたときに JTree 内の HTML JLabel を強制的にサイズ変更する方法

アプリのフォントを通常のサイズから大きいサイズに切り替えるユーザーをサポートするために、Java Swing アプリケーションを更新しています (ユーザーは実行時に 2 つのサイズを切り替えることができます)。私が抱えている問題の 1 つは、ツリー ノードに HTML を使用して一部のノードのテキストに下線を引く JTree に関するものです (HTML は各ツリー ノードの JLabel に埋め込まれているだけです)。ノードについて知っておくべきもう 1 つのことは、ノードがカスタム コンポーネントであり、各 JLabel の前に JCheckBox を追加することです。

問題は、JTree が表示された後にフォント サイズを大きくすると、ノード (下線付きのテキストを含む) のサイズが変更されないことです。これらのノードの HTML は、ノードが広くなるのを妨げているように見えるため、フォントが変更されると、テキストが切り捨てられます。

私のオプションは次のいずれかだと思います:1)JLabelからHTMLを削除すると、フォントサイズが変更されたときに適切にサイズ変更されるため、別のアプローチを使用してテキストに下線を付けるか、2)HTMLのフォーマットを維持して何らかの方法でJTree /フォントサイズが更新されたときにサイズを変更するJLabels(おそらくプロパティ変更イベントの発生による?)。

コードは、フォント サイズが更新されると、親 JFrame で SwingUtilities.updateComponentTreeUI() を既に呼び出しています。

編集: アプリケーションでフォントを変更するために使用される方法は、ここで説明されています

どんな助けでも大歓迎です。前もって感謝します!

-マイク