問題タブ [tablemodel]
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 - Jtable - getvalueAt() の問題
を押したgetvalueAt()
ときに古いデータを選択する理由を知りたいです。
すべての更新モジュールとテーブル変更モジュールを試しましたが、機能しませんでした。で Excel シートのような構造を作成しています。この構造では、1 つの行が別の行に変更されると更新されます。EnterJTable
java - TableModelのJTable-各行にボタンを追加します
データベースのGUIを作成する必要がある学校のプロジェクトがあります。データベースには3つのテーブルが含まれています。
ピザのテーブル
トッピング用テーブル
そして、ピザとトッピングの外部キーを含むテーブル。基本的に、この表は、ピザにどのようなトッピングがあるかを宣言しています。
JTable
これで、カスタムを介してピザテーブルを表示できますTableModel
(テーブルモデルはデータベースと通信します)。
しかし、ここで、テーブルに2つの列を追加したいと思います。これらの列には、各行に2つのボタンが含まれます。1つは実際の行を削除するためのもので、もう1つはダイアログを開くためのもので、現在のピザを編集できます(トッピングの追加、属性の変更など)。
カスタムテーブルモデルからJTableを「フィード」する場合、これらの列を追加するにはどうすればよいですか?テーブルモデルを変更する必要がありJTable
ますか?
java - Java Bean フィールドからのオブジェクト配列
Java Bean フィールドのオブジェクト配列を取得する方法はありますか? データベース テーブル (Hibernate) を表す Bean クラスがいくつかあり、それらから jtable モデルのオブジェクト配列を取得する必要がありますが、これを行う唯一の方法は、各クラスの各フィールドに対して getXXX メソッドを呼び出すことです。やらなければならないこと。
java - 複数のデータ セットの Java テーブルモデル
私は現在Java GUIアプリケーションを構築しており、少なくとも私のように比較的経験の浅い人にとっては、かなりの思考が必要と思われるものを実装しようとしています。
状況
Customer
ジョブのコレクションを保持するドメイン レベルのクラスがあり、これもクラスです ( Job
)。このアプリケーションは、顧客と顧客のために行う仕事を管理したい架空の園芸会社を対象としています。
GUI レベルでは、すべての顧客用の jList があり、拡張されたカスタム リストモデルがありますAbstractListModel
。私のアプリケーションのこの部分は完全に機能し、顧客を簡単に追加/編集/削除できます。
目標
ここで、 jList で選択された顧客の求人を表示するjTableを実装します。
間違いなく custom が必要TableModel
です。問題は、どこからデータを取得するかです。Customer
クラス内のジョブのコレクションは でArrayList
あり、クラスにはこの ArrayListを直接返すメソッドがないことに注意してください。コレクションを変更できるようにしたくないので、コピーを取得することしかできません。パブリックコンテキストから直接クラスで。
私の考え
パラメータを使用して、テーブルモデルに内部コレクションを変更するメソッドを持たせることcustomer
です。インデックスがjList
変更された場合は、そのメソッドを呼び出して、jTableJob
が顧客のために行われた s を表すようにする必要があります。ジョブを編集/作成/削除する必要がある場合、変更は常にテーブルモデルで最初に行われ、オブジェクトに変更が反映されcustomer
ます(新しいジョブまたはジョブの削除の場合)。
質問
それはそれを実装する良い方法ですか?テーブルモデルを介してまたはに直接変更を加えるのを忘れると、矛盾とトラブルが発生するため、そうではないと思います。より良い方法はありますか?他のものを変更する必要がある場合は、気にしません。Job
Customer
Job
(オプション) 小さなサブ質問
Collection
Javaのさまざまな s に関する知識が不足しています。私は通常ArrayList
、この場合Customer
の (変更可能な) ジョブのように、 を使用します。これより良いコレクションはありますか?
java - JTable は変更時に値をロードし、ロード中にプログレスバーを表示します
だから私はJTable
、列AKを持っています。AとBだけが編集可能です。誰かがAの空の行を編集した場合、 Bを取得するために API 呼び出しを行い、次にBが存在するすべての行を取得するために DB 呼び出しを行います。誰かがBの空の行を編集した場合、同じ呼び出しを行います。その行のDBからも。この呼び出しは 0 ~ N 行を返します。0 行が返された場合、Bを除くすべての行の値を変更しますそれ以外の場合は、データを使用して行に入力します。入力したら、すべての列を編集不可にします。DB 呼び出しは独自のスレッドで発生します。呼び出しが返されると、テーブルモデルに追加する独自のレコード オブジェクトを作成します。
私は、データを保持し、値の変更を処理するために、独自のTableModel
とを持っています。TableModelListener
これが私の問題です。セルレンダラーを使用TableCellRenderer
して値が変更されたかどうかを確認しています。変更されている場合は、呼び出しを行い、必要に応じて入力します。DB から多数の行が取得されている場合、すべてのレコードを読み込んで作成するのに時間がかかるため、画面がフリーズしているだけでなく、進行中であり、どれだけ進んでいるのかをユーザーに示すために a を使用しようとしました。ただし、表示されるフレームは空白で何も表示されません。何かを不適切に行っているか、何かが欠けているように感じます。どんな助けでも大歓迎です。ProgressBar
私が話していることを理解するためのいくつかのコード
フォーマットの問題で申し訳ありません
swing - tableModeで重複する行を編集し、元の行も編集します
選択した行または最後の行をtableModelの最後に追加する、行の追加関数を作成しました。新しい行に移動して編集すると、元の行も編集されます。新しい個別の行を作成したと思いましたか、それとも元の行への参照を作成しましたか?
java - 行と列が不明なテーブルからテーブル モデルを取得する
私は知っているテーブルから単純な TableModel を取得する方法を知っていますが、列と行の詳細がわからないテーブルから TableModel を取得する方法を知りたいと思っていました。結果セット?
java - jTableスイングの垂直スクロールバーが表示されない
私はswingsに少し慣れていません、そして私はJtableを含むいくつかのコードを咳き込もうとしていました。スクロールバーポリシーを追加しても、垂直スクロールバーが表示されないようです。コードはかなりぼろぼろです(事前に警告します)。ただし、スクロールバーポリシーのどこに配置する必要があるかを教えてください。いろいろなところに追加してみましたが、表示されないようです。
もう1つの質問は、空のテーブルを作成する方法です。プロセスボタンがクリックされるたびに、テーブルを更新したいと思います。私もこの方向に向けてもらえますか。
使用方法:通常のノードのテキストフィールドに5や10などの数字を入力し、プロセスボタンをクリックするだけです。
私のコード:
ThroughputUtility.javaの追加
java - カスタム JTable TableModel の addRows() メソッドの作成
以下の私の説明は、要約すると、イベントを発生させずに行を追加して、複数の行を追加し、イベントを発生させてそれらすべてを一度に更新できるようにする方法はありますか? カスタム モデルにテーブル データを含めるコードを追加する必要はありませんか?
私は DefaultTableModel から拡張されたカスタム TableModel を持っているので、DefaultTableModel を使用してデータを追跡できますが、独自のカスタム メソッドもいくつかあります。
問題は、複数の行を追加したい場合、「addRows(String[][] val)」メソッドを使用する方が速いと考えていたことです。その後、1 つのイベント (おそらく fireTableDataChanged()) を起動して、行を一度に更新することができます。たとえば、私の現在の方法:
次に、必要な回数だけ上記を繰り返します。問題は、それらのそれぞれが個別のイベントを発生させることです。カスタムテーブルモデルを使用してこれを行うことができれば、はるかに高速になります(と思います):
次に、テーブルモデルで:
これを簡単にコーディングできます。問題は、「super.addRow(vals);」ということです。行は毎回イベントを発生させます。モデルにテーブルデータ自体を含めるコードを追加せずに、行を追加するたびにそのイベントが発生しないようにする方法はありますか? addRows メソッドで fireTableDataChanged() 呼び出しを待つように?
参考までに、私のカスタム テーブル モデルのコードは次のとおりです。
すべての行を表示するために 1 つのイベントを確実に発生させることは、行ごとに 1 つのイベントを発生させるよりも高速ですか?