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

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

java - JXTable - テーブルをフィルタリングした後のハイライター

情報 - 書式設定を改善するために、投稿全体でコード書式設定を使用しました。

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

java - MatchingTextHighlighterでJXTableを使用しているときに誤った強調表示

基本的な質問:

TableColumnの幅を変更している間、メソッド SwingUtilities.layoutCompoundLabel(..)はパラメーターRectangle textRを古い値(または「前の値」)に設定します。
現在の(実際の)長方形の値を取得するにはどうすればよいですか?


いくつかの背景情報とバグ修正:

SwingLabs-Demos のMatchingTextHighlighter.javaを使用しています(例はSearchDemo.javaです)

JXTableセルで見つかった文字だけをマークするのは非常に良いスタートです。ただし、セルコンテンツの配置をからに変更する、蛍光ペンの位置に問題が発生します。LEFT

また

文字が強調表示されると、次の3つのバグが発生します。

1枚の写真に3つのバグ

  1. 状況:JLabelのテキストが完全に表示されます。
    問題:列の幅が広くなると(列ヘッダーを使用してサイズが変更される)、蛍光ペンが右にドリフトします(一致した文字からのawaaay)。

  2. 状況:JLabelのテキストは部分的に表示されますが(省略記号でペイントされています...)、強調表示された文字列は完全に表示されます。
    問題:列幅のサイズを変更しているときに、蛍光ペンの位置が1ピクセルから1文字に間違っています。

  3. 状況: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イベント遅れている」ように見えます。このため、蛍光ペンの位置が間違っています。

誰かがこれを修正するアイデアを持っていますか?

これをすべて読んでくれてありがとう...

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

java - SwingX JXTable: ColorHighlighter を使用して、「行オブジェクト」に基づいて行に色を付けます

私は JXTable を使用しており、JTable の DefaultRenderers に基づいてこれを行う方法を知っていますが、HighlighterPipeline に基づいて JXTable に適した方法で行う方法を知りたいです。

テーブルにオブジェクトのリストが表示されており、各行は 1 つのオブジェクトを表しています。特定のタイプのオブジェクトを表示する行に別の色を付けたいと思います。

ColorHighlighterを使用する必要があるようです。しかし、「1行おきに色を付ける」などの単純な蛍光ペン以外に、この例は見つかりません。

JTable/TableModel パラダイムには「行オブジェクト」のようなものがないため、行番号が必要ですが、それができれば、述語を簡単にテストして true/false を返して、ハイライターに開始するかどうかを伝えることができます。 .

誰かがこれを機能させるための正しい方向性を理解するのを手伝ってくれますか?

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

java - swingx 1.6 で JTable の 1 行おきにハイライト表示する方法

JTable の 1 行おきに強調表示する必要があります。古いバージョンの swingx では、次のように実行できます。

しかし現在、swingx 1.6 では、メソッドsetHighlighters()はこれらのパラメーターを受け入れることができません。「 JXTable型のメソッド setHighlighters(Highlighter...) は、引数 (HighlighterPipeline) には適用できません」と表示されます。

では、どうすれば新しいswingxでそれを行うことができますか?

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

java - JXTreeTable 行のハイライト

JXTreeTable の行を強調表示する次のコードを書きました。

動いていない 。Plsヘルプ

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

java - SwingX で相対的なセルの強調表示を使用するには?

「強調表示 (拡張)」の下の SwingX ショーケースのように、内部の値に関連して org.jdesktop.swingx.JXTreeTable のセルを強調表示したい:

i.imgur.com/iw89kqn.png

ショーケースにはいくつかのコードが提供されていますが、動作させることができず、何も強調表示されません。蛍光ペンが値にバインドされる場所がよくわかりません (提供されたコードが完全ではない可能性があります)。また、利用可能なドキュメントはありません。

ショーケースのコードは次のとおりです。

これは私のコードです:

TreeFrame.java

例から関連するコードを取り出し、要件に合わせて変更しました。私の RelativePainterHighlighter クラスは、ショーケースとまったく同じです。

これは私の ProfileThreadElement クラスです:

ProfileThreadElement.java

そして私のツリーテーブルモデル:

NoRootTreeTableModel.java

最大の問題は、 TreeFrame.setCurrentDuration(...) メソッドをどこで呼び出すかが分からないことだと思います。これは、ショーケースのデモにはありません。相対的な強調表示が機能する人はいますか?

どんな助けでも大歓迎です、事前に感謝します!

PS: 何か見逃した場合や、さらに詳しい情報が必要な場合は、お知らせください。

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

java - SwingX のハイライターを使用して別のレンダラー コンポーネントを返すにはどうすればよいですか?

SwingX のHighlighterインターフェイスでは、ハイライターが渡されたものとは異なるコンポーネントを返すことができることに気付きました。これが使用されている例を実際に見つけることはできませんが、これを使用してある種の偽の秒を作成しようと思いました。桁。

意図した結果は、左の列のテキストが右の列の開始位置で切り捨てられることPainterです。右側の列は、リスト全体で同じ幅をレンダリングする必要があります。これは、私がまだ把握していない問題ですが、難しいことではないようです。

ただし、現時点では、行の高さが圧縮されて非常に小さくなり、テキストが表示されないことがわかりました。

これが私が意味することです:

スクリーンショット

サンプルプログラム:

このAPIのビットを使用する正しい方法があるかどうか疑問に思っています. JRendererLabelそれが問題だった場合に備えて意図的に拡張しましたが、もっと微妙なもののようです...