問題タブ [treecellrenderer]
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.
java - レンダリング時の JTree 行の高さのサイズ変更動作を変更する
ノードが選択されている場合にのみ 3 つのテキスト フィールドを含むカスタム TreeCellRenderer を使用し、ノードが選択されていない場合はデフォルトのレンダラーを使用したいと考えています。問題は、パネルに適切な優先サイズと最小サイズを設定したにもかかわらず、JTree が編集された行の高さを更新しないことです。逆に、同じパネルをエディターとして使用すると、正しくレンダリングされます。
誰かがなぜこれが起こっているのか説明できますか?
編集と同様のレンダリングのサイズ変更動作を実現するための推奨される方法はありますか?
それを直接設定するためにJTreeによって提供される方法はありますか、それともJTreeまたは(さらに悪い)L&Fを拡張する必要がありますか?
注:メソッド
を掘り下げた後BasicTreeUI.startEditing(TreePath path, MouseEvent event)
、次のコード行に気付きました。彼らは編集のサイズ変更を担当しているようです:
これは、さまざまな編集とレンダリングの動作を示すSSCCEです。
- ノードが選択されていない場合、デフォルトのレンダラーが使用されます。
- ノードを 1 回クリックすると、ノードが選択され、パネル レンダラーが使用されます。
- ノードを 2 回クリックすると、編集が開始され、パネル エディターが使用されます。
ご覧のとおり、パネルは編集中にのみ正しくレンダリングされます。
また、これが適切な場所でない場合はご容赦ください。しかし、Swing のベスト プラクティスを推奨する優れた本があるかどうかを尋ねる機会をつかんでいますか?
Swing のアーキテクトは、Swing の設計に基づいた推奨されるソリューションをどこかに文書化しましたか? (私があまりにも多くを求めていることはわかっています) JTree TreeCellRenderer
で見つかったクレオパトラのコメントのようなアドバイスを含むクックブックは少なくともありますか?選択色:
または、CellEditorListener が、editingCanceled と editStopped のみをリッスンし、editingStarted をリッスンしないようにするなどの設計上の決定を説明します (これは、JTable.editCellAt をオーバーライドすることなく JTable のセルのサイズを変更したい場合に役立ちます)。
前もって感謝します!
tree - 実行時に zk-treecol のサイズを変更する
実行時にツリーの列の幅のサイズを変更できるアプリケーションがあります (スプレッドシートで列の幅のサイズを変更できるため)。データ。それは実現可能ですか..?はいの場合、どうすればそれを達成できますか? 前もって感謝します。
java - レンダリングされたツリー セルの更新
これが私のアプリケーションです。
私がやりたいことは、ユーザーの詳細が更新されると、JTree のノードも更新されるようにすることです。これは可能ですか?JTree とそのレンダリングされたセルは既に作成されていますが?
既に作成された後でも、レンダリングされたセルを更新する例が必要です。
ここに私のビューコードがあります:
そして、ここに私のコントローラーコードがあります:
オブジェクトに変更を加えた後、repaintTree() メソッドを呼び出します。今コードを調べた後、問題はノードの詳細ではなくオブジェクトの詳細を変更しているという事実にあると思いますが、それは単なる直感です。
すぐに返信してください、どうもありがとう。
treeview - TreeView での TreeItem の選択幅
私はJavaFX 8を使用しており、現在いくつかのGUI開発を行っています。TreeView に少し問題があり、あなたの助けが必要です。
TreeView で、 TreeCell の幅全体ではなくラベルだけを選択できるかどうか知っていますか?
つまり(Netbeansの例):
それ以外の :
前もって感謝します。
java - ツリー ノード アイコンをクリックすると消える
/* ツリー ノード (例: WEBLOGIC が選択されている) をクリックすると、ノード アイコンが消えますが、他のアイコン (選択されていない) が表示されます。この問題を解決するために私を助けてください。これはスイング ベースのプログラムです*/
java - カスタム オブジェクトの状態に基づいて JTree アイコンを変更する
いくつかのカスタム クラスに基づく JTree があります。複数のノードに特定のアイコンを付けたいです。したがって、このリンクに基づいて次のコードを実行しました: JTree の特定のノードのアイコンを動的に変更します。
私の各ノードは JTreePanelNode (カスタム クラス) のオブジェクトであり、setState(String s) を介して設定し、getState() を介して取得できる特定の状態を保存します。だから私が欲しいのは次のようなものです:
どうすればそのようなことを達成できますか? 私が理解していることから、レンダラーは getTreeCellRendererComponent を使用してすべてのノードを通過し、setIcon といくつかの ifs() で選択できる特定のアイコンを適用します。ただし、JTreePanelNode にキャストできません。解決策はありますか?ありがとう :)
java - JTree の特定のノードに対して DefaultTreeCellRenderer を呼び出す方法
DefaultTreeCellRenderer
JTree のノードを無効にするカスタマイズがあります。
そのコードは次のとおりです。
しかし、私のコードでは使用できません。必要な場所でそれを呼び出すメソッドまたは何かを持つことはできません。たとえば、ボタンが押されたとき、またはアイテムに特定の名前が付いているときなどです。
これは、私のメソッドがモデルをウォークスルーし、与えられた文字列と一致するノードを見つける例です。
これは私CustomDefaultTreeCellRenderer
が自分のツリーに設定する方法です:
そして、これは私の walk メソッドの例です:
特定のノードを無効にする方法はありますか?
java - TreeCellRenderer の getTreeCellRendererComponent() メソッドを定期的に呼び出す方法は?
ツリーを定期的に更新する必要がある Swing アプリケーションを開発しています。ツリーの各ノードは、独立したスレッドで実行される特定のタスクを表します。各ノードには、チェックボックス + 実行するタスクのステータス インジケータ (JPanel で表される) が含まれます。コンポーネントの外観を変更するために、カスタム TreeCellRenderer を作成しました。レンダラーに javax.swing.tree.TreeCellRenderer インターフェースを実装しており、以下のメソッドをオーバーライドしています。
このメソッドが 1 秒ごとに呼び出されるようにして、各ノードが実行する基になるタスクのステータスを更新するようにします。
getTreeCellRendererComponent() を 1 秒ごとに呼び出す方法を教えてください。別のスレッドから発生するイベントはどれですか? 現在、JTree を含む JPanel で updateUI() メソッドを呼び出すことでこれを実現していますが、呼び出しが getTreeCellRendererComponent() から戻るまで、UI 全体がブロックされます。
[UPDATE]: DefaultTreeSelectionModel を使用しています。新しいノードが追加または削除されたときに JTree を更新したくありませんが、各ノードに関連付けられたタスクが終了したときに JTree を更新します。UI に追加された [実行] ボタンをクリックすると、タスクが実行されます。実行ボタンが押されたら、ノードに追加された JPanel で各ノードを異なる色で更新したいと思います。
java - JTree: TreeCellRenderer が期待どおりに動作しない
一言で言えば、最初のレベルが太字になるようにツリーをレンダリングしたいと考えています。
ただし、これにより、ツリー内のすべてのノードが太字になります。なにが問題ですか?