問題タブ [swingx-highlighter]
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 - JXTable - テーブルをフィルタリングした後のハイライター
情報 - 書式設定を改善するために、投稿全体でコード書式設定を使用しました。
java - MatchingTextHighlighterでJXTableを使用しているときに誤った強調表示
基本的な質問:
TableColumnの幅を変更している間、メソッド SwingUtilities.layoutCompoundLabel(..)
はパラメーターRectangle textR
を古い値(または「前の値」)に設定します。
現在の(実際の)長方形の値を取得するにはどうすればよいですか?
いくつかの背景情報とバグ修正:
SwingLabs-Demos のMatchingTextHighlighter.javaを使用しています(例はSearchDemo.javaです)
JXTableセルで見つかった文字だけをマークするのは非常に良いスタートです。ただし、セルコンテンツの配置をからに変更すると、蛍光ペンの位置に問題が発生します。LEFT
また
文字が強調表示されると、次の3つのバグが発生します。
状況:JLabelのテキストが完全に表示されます。
問題:列の幅が広くなると(列ヘッダーを使用してサイズが変更される)、蛍光ペンが右にドリフトします(一致した文字からのawaaay)。状況:JLabelのテキストは部分的に表示されますが(省略記号でペイントされています...)、強調表示された文字列は完全に表示されます。
問題:列幅のサイズを変更しているときに、蛍光ペンの位置が1ピクセルから1文字に間違っています。状況:JLabelのテキストと強調表示された文字列が部分的に表示されます(強調表示は省略記号上にある必要があります)
問題:列幅のサイズ変更中に、省略記号の強調表示の幅が間違っています(ピクセルなしから正しい幅まで)。
これは、左揃えの列にも表示される唯一のバグです(蛍光ペンの幅は常に正しいですが、右にジャンプすることがあります)。
最初のバグは、2行でコメントアウトすることで修正できますtextR.x
(MatchingTextHighlighter.javaの327行目から)。
2つの小さな問題が発生します
。1つは、一致した領域が最初のラベル文字で始まる場合、蛍光ペンがさらに1ピクセル左に始まることです。2つ目は、蛍光ペンです。列ヘッダーを使用して列の幅のサイズを変更した場合、中央揃えの列で1ピクセルジャンプします。
両方(およびRightToLeft-Error)は、これらの変更(MatchingTextHighlighter.javaの397行目から開始)で修正できます。
3番目のバグは、(XMatchingTextHighlighter.javaの48行目を変更する)ことで部分的に修正できます。
これで、蛍光ペンは常に省略記号の最初のピクセルから始まります。修正してください。:-)
しかし、列のサイズを変更している間、幅は変化し続けます、エラー!:-(
MatchingTextHighlighter.javaの2番目と3番目のバグ(残りの半分)をデバッグした後、ユーティリティメソッドの呼び出しだと思います
パラメータtextR
を古い値に設定します。列のサイズを変更しているときに、計算されたテキストの長方形の幅が「1イベント遅れている」ように見えます。このため、蛍光ペンの位置が間違っています。
誰かがこれを修正するアイデアを持っていますか?
これをすべて読んでくれてありがとう...
java - SwingX JXTable: ColorHighlighter を使用して、「行オブジェクト」に基づいて行に色を付けます
私は JXTable を使用しており、JTable の DefaultRenderers に基づいてこれを行う方法を知っていますが、HighlighterPipeline に基づいて JXTable に適した方法で行う方法を知りたいです。
テーブルにオブジェクトのリストが表示されており、各行は 1 つのオブジェクトを表しています。特定のタイプのオブジェクトを表示する行に別の色を付けたいと思います。
ColorHighlighterを使用する必要があるようです。しかし、「1行おきに色を付ける」などの単純な蛍光ペン以外に、この例は見つかりません。
JTable/TableModel パラダイムには「行オブジェクト」のようなものがないため、行番号が必要ですが、それができれば、述語を簡単にテストして true/false を返して、ハイライターに開始するかどうかを伝えることができます。 .
誰かがこれを機能させるための正しい方向性を理解するのを手伝ってくれますか?
java - swingx 1.6 で JTable の 1 行おきにハイライト表示する方法
JTable の 1 行おきに強調表示する必要があります。古いバージョンの swingx では、次のように実行できます。
しかし現在、swingx 1.6 では、メソッドsetHighlighters()はこれらのパラメーターを受け入れることができません。「 JXTable型のメソッド setHighlighters(Highlighter...) は、引数 (HighlighterPipeline) には適用できません」と表示されます。
では、どうすれば新しいswingxでそれを行うことができますか?
java - JXTreeTable 行のハイライト
JXTreeTable の行を強調表示する次のコードを書きました。
動いていない 。Plsヘルプ
java - SwingX で相対的なセルの強調表示を使用するには?
「強調表示 (拡張)」の下の SwingX ショーケースのように、内部の値に関連して org.jdesktop.swingx.JXTreeTable のセルを強調表示したい:
ショーケースにはいくつかのコードが提供されていますが、動作させることができず、何も強調表示されません。蛍光ペンが値にバインドされる場所がよくわかりません (提供されたコードが完全ではない可能性があります)。また、利用可能なドキュメントはありません。
ショーケースのコードは次のとおりです。
これは私のコードです:
TreeFrame.java
例から関連するコードを取り出し、要件に合わせて変更しました。私の RelativePainterHighlighter クラスは、ショーケースとまったく同じです。
これは私の ProfileThreadElement クラスです:
ProfileThreadElement.java
そして私のツリーテーブルモデル:
NoRootTreeTableModel.java
最大の問題は、 TreeFrame.setCurrentDuration(...) メソッドをどこで呼び出すかが分からないことだと思います。これは、ショーケースのデモにはありません。相対的な強調表示が機能する人はいますか?
どんな助けでも大歓迎です、事前に感謝します!
PS: 何か見逃した場合や、さらに詳しい情報が必要な場合は、お知らせください。
java - SwingX のハイライターを使用して別のレンダラー コンポーネントを返すにはどうすればよいですか?
SwingX のHighlighter
インターフェイスでは、ハイライターが渡されたものとは異なるコンポーネントを返すことができることに気付きました。これが使用されている例を実際に見つけることはできませんが、これを使用してある種の偽の秒を作成しようと思いました。桁。
意図した結果は、左の列のテキストが右の列の開始位置で切り捨てられることPainter
です。右側の列は、リスト全体で同じ幅をレンダリングする必要があります。これは、私がまだ把握していない問題ですが、難しいことではないようです。
ただし、現時点では、行の高さが圧縮されて非常に小さくなり、テキストが表示されないことがわかりました。
これが私が意味することです:
サンプルプログラム:
このAPIのビットを使用する正しい方法があるかどうか疑問に思っています. JRendererLabel
それが問題だった場合に備えて意図的に拡張しましたが、もっと微妙なもののようです...