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

0 投票する
4 に答える
3079 参照

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 を使用する必要があります。**

質問: (重要度の降順)

  1. 行の並べ替えに使用される列のインジケーターを表示するにはどうすればよいですか?
  2. ソート順を変更するために列ヘッダーを左クリックしたときに、JTable が適切なイベントを発生させるにはどうすればよいですか?
  3. データベースが変更されたときに JTable を強制的に更新する簡単な方法はありますか?
  4. このすべてをかなり簡単にするライブラリはありますか (DB クエリまたはビューと JTable を接続します)。
  5. このようなシステムを設計すると、恐ろしい、恐ろしい問題に遭遇するのでしょうか?
0 投票する
3 に答える
3817 参照

java - DefaultCellEditor 派生インスタンスが機能した後にセル レンダラーを更新する

JTable独自のセル レンダラーとセル エディターを備えた を使用します。

このテーブルには 2 つの列と x 行が含まれていると
します。最初の列にはブール値、独自のセル レンダリングおよびセル エディター (ラジオボタン)
が含まれています。2 番目の列には文字列値、独自のセル レンダラーが含まれています。現在の行の列が true に設定されている (ラジオボタンがオンになっている)

すべての値はエディターによって正しく更新されますが、ラジオ ボタンが true に設定されている場合、2 行目は太字になりません...
変更を確認するには、別の行のラジオ ボタンをチェックする必要があります

これらの変更はどこで実行できますか?

乾杯とあなたの助けに感謝します


RadiobuttonTableCellEditor.java

0 投票する
9 に答える
280737 参照

java - Java JTable 設定の列幅

次のように列サイズを設定する JTable があります。

これは正常に機能しますが、テーブルを最大化すると、最後の列の右側に空白ができます。サイズ変更時に最後の列をウィンドウの最後までサイズ変更することは可能ですか?

ドキュメントでプロパティを見つけましAUTO_RESIZE_LAST_COLUMNたが、機能しません。

編集:好みのサイズが設定されJTableています。JScrollPane

0 投票する
8 に答える
54358 参照

java - jtableセルで行を折り返す方法は?

このチュートリアルで説明されているように、カスタム TableRenderer を実装しようとしています。指定されたセルに対して長すぎる各テキストをレンダラーにラインラップさせたいと思います。行の折り返しをサポートしているため、TextArea をレンダラーとして使用するという考え方です。ただし、次のコードは期待どおりに動作しません。

このレンダラーを

ただし、セル エントリはラップされないままです。メソッドに追加this.setBackground(Color.YELLOW)するとgetTableCellRendererComponent()、すべてのセルが予想どおり黄色になりますが、ラップされません。

何か案は?

更新: Michael Borgwardt がコメントで述べたように、問題は行の折り返しではなく、行の高さです: JTables 行は固定サイズであるため、セルが高くなった場合 (テキストが複数行になっているため)、行の高さを増やします。しかし、いくらですか?これが別の SO 質問に値するかどうかを確認します。そうでない場合は、このソリューションをここに追加します。

Update2:次のコードは行の高さを決定します (に配置されている場合getTableCellRendererComponent()):

0 投票する
6 に答える
5036 参照

java - ClassCastExceptionの不明なソース(JTables内)

私は現在JTable、多数の異なるタイプのデータを表示するリファクタリングを行っています。このリファクタリングの主な理由は、いくつかClassCastExceptions(コードを書いた作者/友人が休止状態にある)であり、これらがどこから来ているのかわからないようです。コードベースが大きいため、どこから始めればよいのか途方に暮れています。誰か提案はありますか?この質問のあいまいさを認識し、お詫び申し上げます。

以下にスタックトレースを含めました。ありがとう!!

0 投票する
8 に答える
12235 参照

java - JTable のフッター行

フッター行を JTable に入れる最良の方法は何ですか? これを行うためのサンプルコードはありますか?

これまでに考えた唯一の方法は、テーブル モデルに特別な行を配置し、常に一番下に並べ替えることです。


これが私が最終的に得たものです:

並べ替えは正常に機能しますが、フッター行の選択は少し奇妙です。

0 投票する
3 に答える
6851 参照

java - JTable をエミュレートする JavaFX コンポーネント

JTableユーザー向けに表示する必要がある大規模なデータセットがあり、.NET で Swing のようなコンポーネントを探していますJavaFX

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

java - RowSort 操作後のアクションの実行

ソートが終了したに操作を実行したい と がありJTableます。私はネットを閲覧してきましたが、これまでのところあまり運がありません。TableRowSorter

最初は a だけでうまくいくと思ってRowSorterListenerいましたが、残念ながら、並べ替えが終了した後に操作を実行しません。

MouseListenerヘッダーに aを追加することJTableもできますが、ソリューションはそれほど洗練されたものではありません。

誰にもアイデアはありますか?

本当にありがとう!


編集(コメントから):TableModelを拡張するカスタム クラス内のメソッドに以下が追加されますAbstractTableModelJTableこのメソッドは、カスタムTableModelクラスで が設定または指定されるたびに呼び出されます。