問題タブ [jtable]
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 - SQLがソートを行うときにJTableをソートするためのGUI動作を有効にする方法は?
比較述語を使用して並べ替えを行わずに、テーブル行を列で並べ替えるための JTable アイコンと動作を有効にするにはどうすればよいですか? つまり、テーブル ヘッダーに、使用されている列の昇順/降順の並べ替えの矢印を表示し、並べ替え順序/列の変更時に適切なメソッドを呼び出すようにするにはどうすればよいですか?
SQL クエリまたはビューに基づく (編集可能、フィルター可能、並べ替え可能) JTable を作成しようとしています。行がメモリに収まらない可能性があり、Java オブジェクトにきれいにマップされない可能性があるため、SQL 内ですべての並べ替え/フィルタリングを実行したいと考えています。列による並べ替え、値によるフィルタリング、および表示列に対応するようにクエリを変更するためのコードは既に記述しています。
TYPE_SCROLL_SENSITIVE,
これを使用するために、とを使用して ResultSet に基づいて JTableModel を作成する予定ですCONCUR_UPDATABLE
。これにより、DB への変更が ResultSet に反映されます。定期的に (1 秒間に数回) ResultSet から表示されている JTable を強制的に更新し、データベースへの変更がユーザーに表示されるようにします。テーブルに対するユーザーの変更は、検証後に更新可能な ResultSet に渡されます。
ソートが通常どのように行われるかを少し調べましたが、ほとんどの実装は、JTable が Comparator 述語を使用して javax.swing.RowSorter を作成するか、変更時にイベントを発生させるソートされた行のリストを維持することに依存しているようです。だから、私の質問:
ORM フレームワークは、データがエンティティ オブジェクトに適切にマッピングされないため、この質問に対する答えではありません。また、使用している DBMS は H2 です。
編集: Comparator の適用または行オブジェクトへの述語の並べ替えに基づく並べ替え可能な JTable ライブラリも、残念ながら不適切です。ソートを実行するためにすべてのオブジェクトをメモリに保持できるとは思いません。この問題により、SwingX JXTables、GlazedLists、または同様のライブラリを使用できません。できればいいのですが、できません。限目。
** 数千行、場合によっては数百万行、多数の列を処理します。はい、並べ替えとフィルタリングを行うには SQL を使用する必要があります。**
質問: (重要度の降順)
- 行の並べ替えに使用される列のインジケーターを表示するにはどうすればよいですか?
- ソート順を変更するために列ヘッダーを左クリックしたときに、JTable が適切なイベントを発生させるにはどうすればよいですか?
- データベースが変更されたときに JTable を強制的に更新する簡単な方法はありますか?
- このすべてをかなり簡単にするライブラリはありますか (DB クエリまたはビューと JTable を接続します)。
- このようなシステムを設計すると、恐ろしい、恐ろしい問題に遭遇するのでしょうか?
java - DefaultCellEditor 派生インスタンスが機能した後にセル レンダラーを更新する
JTable
独自のセル レンダラーとセル エディターを備えた を使用します。
このテーブルには 2 つの列と x 行が含まれていると
します。最初の列にはブール値、独自のセル レンダリングおよびセル エディター (ラジオボタン)
が含まれています。2 番目の列には文字列値、独自のセル レンダラーが含まれています。現在の行の列が true に設定されている (ラジオボタンがオンになっている)
すべての値はエディターによって正しく更新されますが、ラジオ ボタンが true に設定されている場合、2 行目は太字になりません...
変更を確認するには、別の行のラジオ ボタンをチェックする必要があります
これらの変更はどこで実行できますか?
乾杯とあなたの助けに感謝します
RadiobuttonTableCellEditor.java
java - Java JTable 設定の列幅
次のように列サイズを設定する JTable があります。
これは正常に機能しますが、テーブルを最大化すると、最後の列の右側に空白ができます。サイズ変更時に最後の列をウィンドウの最後までサイズ変更することは可能ですか?
ドキュメントでプロパティを見つけましAUTO_RESIZE_LAST_COLUMN
たが、機能しません。
編集:好みのサイズが設定されJTable
ています。JScrollPane
java - jtableセルで行を折り返す方法は?
このチュートリアルで説明されているように、カスタム TableRenderer を実装しようとしています。指定されたセルに対して長すぎる各テキストをレンダラーにラインラップさせたいと思います。行の折り返しをサポートしているため、TextArea をレンダラーとして使用するという考え方です。ただし、次のコードは期待どおりに動作しません。
このレンダラーを
ただし、セル エントリはラップされないままです。メソッドに追加this.setBackground(Color.YELLOW)
するとgetTableCellRendererComponent()
、すべてのセルが予想どおり黄色になりますが、ラップされません。
何か案は?
更新: Michael Borgwardt がコメントで述べたように、問題は行の折り返しではなく、行の高さです: JTables 行は固定サイズであるため、セルが高くなった場合 (テキストが複数行になっているため)、行の高さを増やします。しかし、いくらですか?これが別の SO 質問に値するかどうかを確認します。そうでない場合は、このソリューションをここに追加します。
Update2:次のコードは行の高さを決定します (に配置されている場合getTableCellRendererComponent()
):
java - ClassCastExceptionの不明なソース(JTables内)
私は現在JTable
、多数の異なるタイプのデータを表示するリファクタリングを行っています。このリファクタリングの主な理由は、いくつかClassCastExceptions
(コードを書いた作者/友人が休止状態にある)であり、これらがどこから来ているのかわからないようです。コードベースが大きいため、どこから始めればよいのか途方に暮れています。誰か提案はありますか?この質問のあいまいさを認識し、お詫び申し上げます。
以下にスタックトレースを含めました。ありがとう!!
java - JTable のフッター行
フッター行を JTable に入れる最良の方法は何ですか? これを行うためのサンプルコードはありますか?
これまでに考えた唯一の方法は、テーブル モデルに特別な行を配置し、常に一番下に並べ替えることです。
これが私が最終的に得たものです:
並べ替えは正常に機能しますが、フッター行の選択は少し奇妙です。
java - JTable をエミュレートする JavaFX コンポーネント
JTable
ユーザー向けに表示する必要がある大規模なデータセットがあり、.NET で Swing のようなコンポーネントを探していますJavaFX
。
java - RowSort 操作後のアクションの実行
ソートが終了した後に操作を実行したい と がありJTable
ます。私はネットを閲覧してきましたが、これまでのところあまり運がありません。TableRowSorter
最初は a だけでうまくいくと思ってRowSorterListener
いましたが、残念ながら、並べ替えが終了した後に操作を実行しません。
MouseListener
ヘッダーに aを追加することJTable
もできますが、ソリューションはそれほど洗練されたものではありません。
誰にもアイデアはありますか?
本当にありがとう!
編集(コメントから):TableModel
を拡張するカスタム クラス内のメソッドに以下が追加されますAbstractTableModel
。JTable
このメソッドは、カスタムTableModel
クラスで が設定または指定されるたびに呼び出されます。