問題タブ [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.

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

java - ツリーが生成された後に動的にアイコンを追加するときの JTree ノード名のサイズ変更

私のコードでは、条件に応じて、JTreeノードにIcon. 私の問題は、ノードに を設定したいときにIcon、ノードの名前のサイズが縮小され、「...」が追加されることです。

したがって、基本的に、ノードはアイコンのサイズに基づいてサイズを再計算し、残りをフィッティングします。

この動作を防ぎ、アイコンが追加されたときにノードのサイズを拡張できるようにするにはどうすればよいですか?

アイコンなし/ありのスクリーンショットは次のとおりです。

ここに画像の説明を入力

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

java - 奇妙な DefaultTreeCellRenderer の動作、getTreeCellRendererComponent() を部分的にしか実行しない

複数のルート ノードがあっても JTree を作成し (これは初めての JTree だったので、これは非常に困難でした)、さらに一歩先に進む準備ができていました (と思っていました)。セルレンダラー。

すべてのノードに 1 つのアイコンを設定しようとしましたが、うまくいきました。今、私はそれがどのような種類のノードであるか (葉と枝だけでなく) を確認しようとしており、必要な画像のファイル名の文字列を作成しています。isKlas()現在のところ、常に true を返すため、klas_fold.png または klas_unfold.png である必要があります。しかし、getTreeCellRendererComponent()ファイルパスが印刷されず、アイコンも変更されないため、部分的にしか実行されません。常にデフォルトです!

これが私のコードです:

はい、それは内部クラスです。

ありがとう!

編集:

物事を台無しにしたのは ClassCastException であることがわかりました。しかし、これは奇妙です。なぜなら、次のように Tree を初期化するからです: new JTree({new TreeItem("params"), new TreeItem("params")});. だから私はオブジェクトからツリーアイテムにそれらをキャストすることができるはずですか? (TreeItem は私のクラスの 1 つです。DefaultMutableTreeNode を拡張します)。

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

java - DefaultMutableTreeNodeのテキストスタイルを変更する

カスタムJTreeを作成しました。そのツリーをフィルタリングして、特定の基準(文字列)を含むノードのみを表示することができます。さて、検索された文字列を含むDefaulMutableTreeNodeのその部分だけを太字にする方法はありますか?

ツリーノードにlabel="StackOverflow"があり、ユーザーが "Stack"を含むノードを検索している場合、"StackOverflow"ノードは"Stack"の部分が太字でレンダリングされます。

それを達成する方法は?

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

combobox - GTK CellRendererCombo が適切なセルに値を設定

私がやろうとしているのは、いくつかの列を持つ TreeView です。最初の列は ComboBox です。つまり、Gtk.CellRendererCombo を使用しています。問題は、ComboBox から値を選択したときに、セルのテキストを "" から選択した値に変更したいということです。Gtk.CellRendererCombo.Edited イベントで、列の Text フィールドを EditedArgs.NewText に設定すると実現可能です。

問題は、値を設定するたびに新しい行を作成し、テキスト フィールドを Gtk.CellRendererText のように動作させたいのですが、そうではありません。その列の行ごとに異なる値ではなく、Gtk.CellRendererCombo.Text で設定された値と同じです。

Gtk.CellRenderer には状態が含まれていてはならないので、Text フィールドを使用することは、私がやろうとしていることから考えると非常に悪い考えです。

しかし、TreeView のモデルである Gtk.ListStore から値を設定した場合 (Gtk.CellRendererCombo のモデルとは異なります)。設定された値は、ComboBox の列には表示されません。

値を表示するために選択が行われた ComboBox のセルが必要ですが、後で変更するために引き続き編集可能です。

誰かがこれを行う方法を持っている場合、私はあなたの入力に非常に感謝しています. ありがとう。

アップデート:

私が思うに、Gtk.CellRendererCombo は Gtk.CellRendererText を継承しているため、セルに設定された値を無視するだけです。ここで、Gtk.CellRendererCombo から継承するカスタム MyCellRendererCombo を作成し、レンダリングに提供されたときにセルに設定された値を使用できると思いますが、Gtk.CellRendererText と Gtk.CellRendererCombo の違いに関するドキュメントは非常にスリムです...詳細を知るには、C での実装にアクセスする必要があると思います。

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

java - JTree:個々のグループにカスタムの開閉アイコンを設定します

  1. JTreeでカスタムリーフアイコンを設定する方法を知っています
  2. すべてのグループノードにカスタムの閉じた/開いたアイコンを設定する方法を知っています

ただし、グループノード名に基づいてカスタムの開閉アイコンを設定することはできません。たとえば、ノードを電子メールと呼んだり(エンベロープアイコンがあると便利です)、1つのグループをタスクと呼んだりできます。

getTreeCellRendererComponentクラスのメソッドをオーバーライドしてこれを実行しようとしましたDefaultTreeCellRenderer

ただしicon、現在のnodeを変更すると、次のノードにのみ影響します。

個々のグループにカスタムの開いた/閉じたアイコンを設定するにはどうすればよいですか?

私のコードを見てください:

Employee.java

CustomTreeNode.java

CustomeTreeCellRenderer.java

Test1.java

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

java - JTreeの特定のノードのアイコンを変更しますか?

JTreeがあり、そのノードはDefaultMutableTreeNodeから駆動されます。各ノードは確認できるかどうかはわかりません。最初はすべてのノードのアイコンは同じですが 、確認したノードを選択して確認ボタンを押すと、確認したノードのアイコンを変更します。JLabelを使用してアイコンを表示できないように、各ノードをクリックして書き込む機能が必要です。次のコードを作成しましたが、NULLExceptionが返されます。

何百万ありがとう。

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

java - JTree & JButtons - マウスをボタンの上に置いたときの不適切なレンダリング

JTree と JButton に問題があります 編集モードに入り、TreeCells のボタンにカーソルを合わせると、ボタン内のツリーの一部がレンダリングされるようです。あるボタンから同じ行の別のボタンにドラッグしても、あるボタンが別のボタンの上にレンダリングされます。

ここに、コピーして貼り付けて意味を確認できる短い自己説明サンプルがあります。

このパーツを消しても。セルをクリックして編集モードに入る必要がありますが、マウスでセルを離れて戻ることで効果を得ることができます。

この JTree のカスタマイズに既に 4 日を費やしています。しかし、ボタンを入力してレンダリングを停止するにはどうすればよいのか、本当に混乱します。

0 投票する
0 に答える
425 参照

java - JTreeのカスタムノードでのマウスアクション:jre6とjre7の違い

JTreeは、TreeCellRendererとTreeCellEditorを使用して、次の3つのカスタムノードを表示します。

  • 単一のJCheckBox
  • 単一のJButton
  • 任意のアクションコンポーネントで構成されるJPanel(ここでは北のJCheckBoxと南のJButtonです)

スクリーンショット:http://i.imgur.com/9j6B2ji.png

Java Runtime Environment 6を使用する場合、このようなツリーに問題はありません。

Java Runtime Environment 7を使用する以外に、JPanelノード内のJButtonをクリックすると問題が発生します。JButtonの「クリック」アニメーションは、JPanelを最初にクリックしたとき(およびJPanelのあるノードの編集が停止した後)にはレンダリングされません。最初のノードJCheckBoxと2番目のノードJButtonは、jre6とjre7のどちらでも完全に機能しています。

以前のjre6とまったく同じように機能させたいのですが、回避策はありますか?

注:ボタンにコードを実行させることは問題ではありません。

0 投票する
0 に答える
67 参照

java - JTree getCellRenderderComponet は削除された子を参照します

カスタム TreeCellRenderer を持つ JTree があります。

次に、表示後にツリーにノードを動的に追加します。子を 1 人だけ追加する場合を考えてみましょう。

次に、ツリーのルートも非表示にします

後でこれらのノードを削除する別のオプションがあります

今私が抱えている問題は、ツリーのルートに子が 1 つしかなく、その子を削除することを選択した場合、削除後も getTreeCellRendererComponent() メソッドがその削除されたオブジェクトを指していることです。その手がかりはありますか?