問題タブ [jxtable]
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 - SwingX による JXTable のソート
私はJXTable
SwingXコンポーネントからのものを使用しています。メソッドを使用setSortable(boolean flag)
すると、すべての列の並べ替えが有効または無効になります。
私の要件では、いくつかの列の並べ替えを無効にし、他の列の並べ替えを有効にしたいと考えています。
誰でもこの機能を達成するのを助けることができますか?
お返事をありがとうございます。setSorterClass(String sorterClassName)
1 つの列の並べ替えを無効にする方法を教えてください。コード例を教えてください。とても参考になります。
java - JXTable と DefaultTableCellrenderer および代替ストライプ ハイライター
SwingX-1.6.2 にアップデートしましたが、1.6 では発生しなかった問題が見つかりました。JXTable セルの色が奇妙に見えます。色には代替ストライピング (HighlighterFactory.createAlternateStriping) を備えたハイライターを使用し、テキスト、フォントの設定には DefaultTableCellRenderer のサブクラスを使用します...
1.6.1 以降、カスタム セル レンダラーが設定されている場合、蛍光ペンの色は無視されるようです。ドキュメントにはハックがあると書かれていますが、機能しません。
これに対する解決策はありますか?
java - jtable と intellij - 列が右側に表示されるように設定するにはどうすればよいですか
intellij で、JPanel に JXTable を作成しました。
2 つの列を追加し、幅を設定しました。
パネルをjxtableよりもずっと長くしたいので、そのサイズを非常に大きく設定しました。
問題は、列が左側に追加されることです。
それらをテーブル領域の右側に追加する方法はありますか? 私が試してみました
しかし、成功しませんでした
ありがとうございました。
java - JXTable convertRowIndexToModel ソート後の結果が間違っていますか?
私はJXTable
、モデルがList
異なるオブジェクトの である を持っています。選択した列ヘッダーでビューを並べ替えた後、ビュー インデックスをモデル インデックスにマップしようとすると問題が発生します。このコードを使用すると、
私はこの結果を得ます:
異なるビュー インデックスが同じモデル インデックスにマップされる理由がわかりません。
解決された問題: 行ごとに変更した直後に fireTableRowsUpdated を呼び出したため、選択したインデックスが正しくなくなりました。
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 - JXTable と RXTable の結合
問題
RXTableの「編集時にすべて選択」動作を備えたJXTableの機能が必要です。単純なオーバーライドを行うことは問題ありませんが、RXTable のダブルクリック機能は JXTable では機能しません。ボタン アクション モードを使用する場合は問題ありませんが、F2 を使用するか、JXTable で何かをダブルクリックすると、RXTable と衝突して選択が削除されるため、デフォルトの動作のままになります。内部で使用している GenericEditor のためですか、それとも何か他のものですか?
F2またはダブルクリック編集でJXTableをすべて選択するにはどうすればよいですか?
編集:これは、モデルに整数型用に定義された列がある場合にのみ発生するようです。文字列またはオブジェクト列に対して定義されている場合、期待どおりに機能します。
解決
kleopatra の修正のおかげで、selectAll メソッドを変更して、JFormattedTextFields とすべての編集ケースを処理できるようになりました。元のコードは編集するタイプで機能していたので、他のケースでは修正を使用しました。これが私が最終的に得たものです。
RXTable の selectAll を次のように置き換えます。
java - JXTable ハイライター
テーブル内の前のデータに基づいて、JXTable 内のデータを強調表示したいと思います。データは「ブロック」に存在しますが、データの各ブロックの行数はさまざまな要因によって異なります。私がやりたいのは、ブロック内の 1 つの要素/列 (ブロック全体で一貫している) が前のデータ ブロックと十分に異なる場合、データの各ブロックを交互に強調表示することです。
考え?
java - ビューの並べ替えとフィルタリング: GlazedList の並べ替えとフィルタリング + JTable と Glazed イベント リスト + JXTable
並べ替え機能とフィルター機能を備えたユーザー ビュー (テーブル) を作成したいと考えています。EventTableModel のソースとしてEventList ( Glazed Lists ) を使用します。また、GlazedLists には Sorted List といくつかのフィルタリング項目があるので、それらを使用してビューを作成できます。しかし、私はJXTableを見つけ、それにはソートとフィルタリングのメソッドがあり、これがどのように機能するかを示しています.ソートとフィルタリングはUIコンポーネントを提供する必要があり、モデルはデータを保持できます:
ただし、GlazedLists は、SortedList (Sorting を使用した EventList のデコレータ) といくつかのフィルタリング メソッドも提供します。
そして問題は、どのモデルが優れているかです。または、両方が間違っている可能性があり、ビューの作成に何を使用しますか?
java - JXTable:列モデルの状態を照会する方法は?
アプリケーションの UI 永続化メソッドをいくつか書いています。テーブル モデルに固定された N 列のセットを持つ JXTable に拡張しようとしています。
JXTable の列 #k について次の情報を取得および設定するにはどうすればよいですか。ここで、k はテーブル モデルの順序での列番号です。思ったほど簡単ではありません。少なくとも、いくつかのトリッキーな情報が欠けています。
- 列幅
- 列の可視性
- 列の順序
TableColumnModelExt.getColumns()
解析に問題があるこのクレイジーなメモが含まれています。
java.util.List<javax.swing.table.TableColumn> getColumns(boolean includeHidden)
含まれている TableColumns のリストを返します。includeHidden が true か false かに応じて、非表示の列をそれぞれ含めるか除外します。false の場合、List に対する Iterator は、getColumns() によって返される Enumeration と同等です。
注: リスト内の列の順序は、非表示の列が含まれているかどうかによって異なります。前者の場合は挿入順序であり、後者の場合は表示されている列の現在の順序です。
また、使用方法は知ってJTable.convertColumnIndexToView()
いますが、非表示の列に対して -1 を返し、非表示の列が再び表示された場合にどの順序になるかについての情報を残しません。JXTable は、列の可視性を復元できるため、この情報を認識しており、非表示になる前の場所に列を配置します。
java - JTable または JXTable の列区切り
分割したいグループ化された列の3つのセクションを持つJTable(またはより正確にはJXTable)があります。以前は、プログラムでリンクした 3 つのテーブルがありました (スクロールバーの位置、並べ替え、選択)。これをリンクするために多くのコードを使用しましたが、これを取り除きたいです。このテーブルクラスにはもっと良いものがいくつかあるので、今は1つのJXTableに切り替えています。
ほぼ同じ問題に対するいくつかの(あまり満足のいくものではない)解決策を見つけました。誰かが私に良い提案をしてくれるかもしれません。
オプション 1: 仕切りとして空の列 (グレーなどの別の色) を使用し、矢印またはタブ キーを使用するときにプログラムでこの空の列を飛び越えます。
オプション 2: 1 列の 1 辺だけのマージンをより大きなサイズに設定して、仕切りのように見えます。今まで、すべての列の余白を設定する方法しか知りませんでした
オプション 3: 再び 3 つの個別のテーブルに戻ります (特に、個別のセクションで列を繰り返したくないため、テーブルを同じ方法で並べ替えるのは大変な作業です)。これは、目に見えない列でソートして、テーブルソーターを書き直す必要があることを意味します。
どんな提案でも大歓迎です (3 つの選択肢のどれにも当てはまらない場合も)