問題タブ [jxtreetable]
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 - Java JXTreeTable タブ文字のサポート
タブ文字(\t)またはタブキーはJXTreeTableでサポートされていますか? 「My Name」のような入力を入力しているため、My と Name の間のスペースはスペースバーではなく、キーボードの Tab キーを使用しています。JXTreeTable でこの入力を見ていると、MyName としてしか見ることができません。タブスペースがないと、これに関して何か入力できますか?
java - JXTreeTable から選択した値を取得
私はtreetable
使用を構築しており、選択した値に応じてアイテムJXTreeTabble
を無効/有効にしたいと考えています。menu
だから、私はこのコードを私の中に入れようとしましたtable model
:
問題
上記は、の内容がtable
展開されていない場合にのみ機能します。index
のは のselected row
よりも大きい可能性があるためsize
ですable model
(モデルには 2 つのアイテムを含めることができ、すべてを展開すると行には 10 のアイテムを含めることができます)。また、 のobject type
は とparent
は異なりchildren
ます (チャプターを持つ本を子と考えてください)。
上記を正しく行う方法として何を提案しますか?
java - 別のツリーテーブルから更新されたツリーテーブルの値を表示する
レンダリングエンジンに合わせてシーンエディタを作成しようとしています。私はswingを使用してGUIを作成し、そのJXTreeTable
コンポーネントにもswingxを使用しています。シーンツリーテーブルがノードの名前を希望どおりに自動的に更新しないことを除いて、すべてが正常に機能しています。たとえば、次の画像では、ノードの1つの名前を変更しましたが、何も起こらないようです。ただし、[シーン]ボックス(一番上にあるノード)のノードの上にマウスを移動すると、名前が更新されます。
私は2つJXTreeTable
、そして拡張する2つのモデルを持っていAbstractTreeTableModel
ます。プロパティモデルに関連するコードは次のとおりです。
使うfireChildChanged()
とシーンツリーテーブルが思い通りに更新されると思いました。
index = 0で呼び出すfireChildChanged()
と、名前を変更したときにルートノードを更新できますが、他のインデックスは、更新するためにマウスをその上に移動するまで待つ必要があります。
編集:問題は解決しました
@Shakedownによって提案された再描画方法を試しましたが、部分的には機能しましたが、新しいテキストが元のテキストよりも長い場合、テキストの後に「...」が残ることがありました。
しかし、問題はTreePathが適切に生成されていないことに起因していることに気づきました。を使用する場合TreePath path = new TreePath(sceneSelection.getParent());
、パスの親はnullであったため、ツリーを更新できませんでした。私は今、動作するこのコードを使用しています:
java - デフォルトで値をロードする方法
JXTreeTable
と を使用してツリー ビューアーを作成してDefaultTreeTableModel
います。ツリー内の何百万ものオブジェクトを親とその子として表示するために使用されます。
このコードを使用してノードの値をツリーに挿入します -
このモデルは、ロード時にツリーに挿入されています。
保存された結果から1つずつ取得された値として挿入された子を表示したいのですが、リストが終了した後に完全なリストをモデルに追加します。
このオブジェクトの表示リストを動的に実行するにはどうすればよいですか?
java - ダブルクリックされた TreeTableNode を取得するには?
私は Eclipse を使用していますが、JXTreeTables について質問があります。ノードがダブルクリックされたときに、ノードに関する情報を表示するウィンドウがポップアップするようにします。クリックがノード上で直接行われなかった場合、JXTreeTable または null のダブルクリックされたノードを取得することは可能ですか?
java - Swingx コンポーネント プロバイダー: 特定の行のコンポーネントを非表示にする
Swingx の ComponentProvider をサブクラス化して JButton を提供しましたが、JXTreeTable の一部の行で、ボタンを表示したくありません。私が望む最終的な「結果」は、プロバイダーを設定していない列に空のテキストを表示するときに得られるような、空のセルを持つことです。
特定の行でレンダリングされたコンポーネントを非表示にすることは可能ですか (たとえば、値に応じて)? または
setVisible(false)
のレンダリングされたコンポーネントの設定が機能しません。format()
configureState()
ComponentProvider をサブクラス化して、さまざまなタイプのコンポーネントを提供することは可能ですか? はいの場合、それはどのように機能しますか?
configureState()
ComponentProvider が提供する可能性の例と、どのメソッドが何をするかについての明確な説明はどこにありますか (たとえば、との違いがほとんどわかりformat()
ません)。
編集
JX(Tree)?Table に表示される JButton がセルと同じ幅になるのを防ぐことは可能ですか?
別の蛍光ペンを作成する場合、別の述語 (ROLLOVER など) を使用してカーソルを変更できますか? ボタンが非表示になっていても、カーソルが(リンク上で)手の形に変わります。
どうもありがとう!
java - JXTreeTableにその上位要素をソートさせる方法
JXTreeTableでの並べ替えが無効になっていることを認識しています(ソースを確認しました;))。
ただし、ルートノードの直接の子の値のみに基づいてすべての列で並べ替えを許可したいと思います。
私がこのような構造を持っているとしましょう:
私が達成したいのは、第1レベルのノードでのみ3列でソートすることです。日付の昇順で並べ替えると、次のようになります。
ご覧のとおり、これは単純なテーブルの並べ替えに似ています(したがって、並べ替えを無効にするために呼び出される階層の制限が解除されます)。
それを行うには2つの可能性があります。
- JXTableで使用可能な並べ替えメカニズムを再度有効にして、すでに実装されているすべての機能(並べ替え、ヘッダーをクリックして並べ替えなど)を利用し、最初のレベルのノードのみを並べ替えます(子は同じ親を持つため) 。
- 必要な基本的なものを実装し(主にヘッダーをクリックして並べ替えます)、JXSortableTreeModelにmodel-row-idのリストを用意します。これを並べ替えて、convertRowIndexToModelをオーバーライドします。これにより、(私が思うに)自分のアイテムを好きなように並べ替えて表示できます。
私のお気に入りはもちろん最初のものですが、それを達成する方法がわかりません。最初の制限は、JXTreeTableがsetSortable()(および関連するすべてのメソッド)をオーバーライドするため、並べ替えを再度有効にする方法がわからないことと、JXTableのメソッドの実装に直接アクセスする方法がわからないことです(これはJavaの問題です)。 )。JXTreeTableのコードをコピーしてオーバーライドを削除することもできますが、それは私の意見ではオプションではありません。
これを解決するとしたら、並べ替えを第1レベルのノードに制限するにはどうすればよいですか?ソースを見た後でも、私はそれを行う方法についてかなり無知です。
2つ目では、既存のコードのすべての利点を失いますが、私が望むものを達成するための実用的な方法がわかります(少なくとも、今のところ、すべての行のデータをフィルター処理したくないかどうかは誰にもわかりません)。
別の方法はありますか?そうでない場合は、どのソリューションを選択する必要がありますか?洞察に満ちたコメントはありますか?
よろしくお願いします!
java - JXTreeTable の TreeTableNode が隠されているかどうかを識別する方法は?
私は swingx を使用してJXTreeTable
おり、リーフ ノード ( AbstractMutableTreeTableNode
) が非表示になっているか、親ノードが閉じているかを判断したいと考えています。
これを行う明白な方法を見つけることができないようです。
ありがとう!
java - モデル変更時の JxTreeTable の更新
基になるモデルが変更されたときに JxTreeTable を再描画する最善の方法を見つけるのに苦労しています。
テーブル内のノードごとに対応するモデル オブジェクトがあるため、モデルが変更された場合はノードを取得できます。
その後、ノードが与えられた場合、テーブルで再描画/変更イベントをトリガーして強制的に再描画する方法を教えてください。手がかりを歓迎します。詳細を軽くして申し訳ありません。コードで示すことはあまりありません。