問題タブ [swingx]
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 - 日付と時刻の jframe GUI
GUI に日付/時刻ピッカーを含めようとしています。これどうやってするの?。誰かが私に教えてくれるか、チュートリアルへのリンクを教えてくれますか?.
java - 長時間実行されるEDTタスクを処理します(fi TreeModel検索)
トリガーは最近再検出されたSwingXの問題です:サポートディープ-現在の動作である表示ノードのみではなく、折りたたまれたノードの下にあります-ノード検索。
「Nichtsleichteralsdas」と、SwingWorkerへの現在のすべての露出:以下の大まかなスニペットに示すように、バックグラウンドスレッドでTreeModelをウォークし、処理中のUIを更新します。FestのEDTチェッカーは十分に満足していますが、再描画のみをチェックします(これは、ここのEDTでうまく行われています)。
厳密に言えば、そのバックグラウンドスレッドは、モデルにアクセスしている(読み取ることによって)ため、EDTである必要があります。したがって、質問は次のとおりです。
- 検索スレッドを正しく実装する方法は?
- または、そのリスクを抱えて生きることができますか(もちろん、詳細に文書化されています)
特殊なケースのソリューションの1つの可能性は、検索用の2番目の(クローンまたは「同じ」作成の)モデルを用意し、「実際の」モデルで対応する一致を見つけることです。これは、特定のモデルについて何も知ることができないため、一般的な検索サポートではうまく機能しません。つまり、必要な場合でもクローンを作成することはできません。さらに、すべてのビューの並べ替え/フィルタリングを適用する必要があります(将来)...
参考: OTNのSwingフォーラムとSwingLabsフォーラムへのクロスポスト-最後にすべての入力の要約を投稿しようとします(ある場合:-)
補遺
結局のところ、私は間違った質問(または間違ったコンテキストでの正しい質問;-)をしたことが判明しました:「問題」は想定された解決策によって発生しました。解決すべき実際のタスクは階層検索アルゴリズムをサポートすることです(現在、AbstractSearchableは線形検索で大きく歪んでいます)。
それが解決したら、次の質問は、具体的な階層型検索可能ファイルをサポートするためにフレームワークがどれだけできるかということかもしれません。TreeModelsのさまざまなカスタム実装を考えると、それはおそらく最も単純な場合にのみ可能です。
ここや他のフォーラムでの議論で浮かび上がったいくつかの考え。具体的なコンテキストでは、最初にトラバーサルが遅いかどうかを測定します。ほとんどのメモリ内モデルはトラバースが非常に高速であり、基本的なサポートを使用する以外に何もする必要はありません。
トラバーサルがボトルネックである場合(SwingXのFileSystemModel実装のfiのように)のみ、追加の作業が必要です。
- 真に不変で変更不可能なTreeModelでは、SwingWorkerのバックグラウンドスレッドでの読み取り専用アクセスを回避できる可能性があります
- 遅延読み込み/削除シナリオでは、変更できない前提条件に違反しています
- モデルを裏付ける自然なカスタムデータ構造が存在する可能性があります。これは、実際のモデルから事実上「切り離された」ものであり、その裏付けモデル(トラバーサルモデルとビューモデルの両方)への同期を可能にします。
- 実際の検索をデータベースに戻します
- 特定のTreeModelの上にラッパーを使用して、EDTの基になるモデルへのアクセスを保証します
- 「偽の」バックグラウンド検索:実際には、EDT(タイマーのfi)の十分に小さいブロックで実行して、ユーザーが遅延に気付かないようにします。
低速検索の技術的なオプションが何であれ、解決すべき同じユーザビリティの問題があります。エンドユーザーに遅延を提示する方法は?そして、それはまったく別の話であり、おそらくさらにコンテキスト/要件に依存します:-)
java - JXTreeTableにその上位要素をソートさせる方法
JXTreeTableでの並べ替えが無効になっていることを認識しています(ソースを確認しました;))。
ただし、ルートノードの直接の子の値のみに基づいてすべての列で並べ替えを許可したいと思います。
私がこのような構造を持っているとしましょう:
私が達成したいのは、第1レベルのノードでのみ3列でソートすることです。日付の昇順で並べ替えると、次のようになります。
ご覧のとおり、これは単純なテーブルの並べ替えに似ています(したがって、並べ替えを無効にするために呼び出される階層の制限が解除されます)。
それを行うには2つの可能性があります。
- JXTableで使用可能な並べ替えメカニズムを再度有効にして、すでに実装されているすべての機能(並べ替え、ヘッダーをクリックして並べ替えなど)を利用し、最初のレベルのノードのみを並べ替えます(子は同じ親を持つため) 。
- 必要な基本的なものを実装し(主にヘッダーをクリックして並べ替えます)、JXSortableTreeModelにmodel-row-idのリストを用意します。これを並べ替えて、convertRowIndexToModelをオーバーライドします。これにより、(私が思うに)自分のアイテムを好きなように並べ替えて表示できます。
私のお気に入りはもちろん最初のものですが、それを達成する方法がわかりません。最初の制限は、JXTreeTableがsetSortable()(および関連するすべてのメソッド)をオーバーライドするため、並べ替えを再度有効にする方法がわからないことと、JXTableのメソッドの実装に直接アクセスする方法がわからないことです(これはJavaの問題です)。 )。JXTreeTableのコードをコピーしてオーバーライドを削除することもできますが、それは私の意見ではオプションではありません。
これを解決するとしたら、並べ替えを第1レベルのノードに制限するにはどうすればよいですか?ソースを見た後でも、私はそれを行う方法についてかなり無知です。
2つ目では、既存のコードのすべての利点を失いますが、私が望むものを達成するための実用的な方法がわかります(少なくとも、今のところ、すべての行のデータをフィルター処理したくないかどうかは誰にもわかりません)。
別の方法はありますか?そうでない場合は、どのソリューションを選択する必要がありますか?洞察に満ちたコメントはありますか?
よろしくお願いします!
java - JXTable 列の並べ替えは 1.0 と 1.6 の間で変更されます
JDK1.6 に更新したため、最近、アプリケーションの SwingX ライブラリをバージョン 1.0 から 1.6.2 に更新しました。JDK 1.6 で導入されたコア JDK コンポーネントの一部を再利用するように並べ替えが変更されたことは知っています。
ただし、バージョン 1.0 では、ヘッダーをクリックして列を並べ替えることができ、その後のクリックで並べ替え順序が元に戻り、Shift クリックで並べ替えが削除されて元の順序に戻りました。バージョン 1.6.2 への更新後、シフト クリックの動作はなくなりました。
小さなサンプル
このサンプルをバージョン 1.0 で実行すると、ヘッダーを Shift キーを押しながらクリックして列の並べ替えを削除できますが、バージョン 1.6.2 ではこれが機能しなくなりました。
ドキュメントを確認しましたが、この動作を元に戻すものは何も見つかりませんでした。したがって、この機能を追加する前に、シフトクリックの動作を簡単に再導入する方法を誰かが知っているかどうかをここで尋ねました
java - JXScrollUp コンパイル
サンプル ソース コード JXScrollupTest.java のため、JXScrollUp クラスを含むパッケージが見つかりませんでした。私はこのクラスパスを使用しています:
どうすればコンパイルできますか?どうもありがとう
ルーカス
java - Javaでこのような境界線を作成するにはどうすればよいですか?
私はこの境界線を何時間も複製しようとしましたが、成功しませんでした:
これを行う方法について何か考えはありますか?
java - 静的 JComboBox が GUI に表示されない
複数のクラスから goToTop および discCrop メソッドにアクセスする必要があり、plantList JComboBox の同じインスタンスを操作する必要があるため、静的にしようとしました。しかし、以下のコードを実行すると、JComboBox が GUI に表示されません。静電気を取り除くと、完全に表示されます。
}
rendering - JXTable - 列をアイコン/ラベルとしてレンダリングする方法は?
JXTable を稼働させていますが、列をラベルまたはアイコンとしてレンダリングしたいと考えています。文字列値をラベルに変換するコードが既にあります (一連のアイコンが一緒に追加されています)。テーブルをそのようにレンダリングするように指示する方法を知る必要があるだけです。
何か案が?
前もって感謝します!
java - JPanel スイングで画像を表示中にメモリ不足になる
JPanelで画像を表示しようとしています。これには、swingx ライブラリの ImagePainter を使用しています。そこで、背景ペインターを ImagePainter に設定して JXPanel を作成します。
ここで、2 つの別個の JFrame にある 2 つの JPanel に同じ画像を表示する必要があります。これを行うと、ヒープスペースの問題が発生します。この場合、ImagePainter の同じインスタンスを共有しますか? それは役に立ちますか?しかし、それは、複数の一意の画像を表示する必要がある場合、とにかくメモリ不足のエラーが発生することを意味します..何か間違っていますか?
私が使用するコードは次のとおりです。
エラー スタック トレースは次のとおりです。
更新: 問題を示す SSCCE は次のとおり です。これをコンパイルするには、クラスパスに jgoodies フォーム レイアウト jar と swingx jar が必要です。[画像] をもう一度 2 回クリックすると、メモリ不足のエラーが発生します。私が使用した画像も添付されています。
java - SwingX JXTable: ColorHighlighter を使用して、「行オブジェクト」に基づいて行に色を付けます
私は JXTable を使用しており、JTable の DefaultRenderers に基づいてこれを行う方法を知っていますが、HighlighterPipeline に基づいて JXTable に適した方法で行う方法を知りたいです。
テーブルにオブジェクトのリストが表示されており、各行は 1 つのオブジェクトを表しています。特定のタイプのオブジェクトを表示する行に別の色を付けたいと思います。
ColorHighlighterを使用する必要があるようです。しかし、「1行おきに色を付ける」などの単純な蛍光ペン以外に、この例は見つかりません。
JTable/TableModel パラダイムには「行オブジェクト」のようなものがないため、行番号が必要ですが、それができれば、述語を簡単にテストして true/false を返して、ハイライターに開始するかどうかを伝えることができます。 .
誰かがこれを機能させるための正しい方向性を理解するのを手伝ってくれますか?