問題タブ [abstracttablemodel]
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 行の編集
JTable
ユーザー情報を表示するために使用します。ユーザーが行を選択してそのボタンをクリックすると、選択した行を編集してファイルに書き直す必要がある編集ボタンを追加します。
どのようにすればよいですか?
セカンドクラス:
java - jtableによるユーザー情報の編集
テキストファイルに独自に含まれていることを示すjtableがあります。テキストファイルの各行はユーザーレコードです。テーブル上で選択した各行を編集するための編集ボタンを追加します。私はこのコードを使用していますが、これを行う方法がわかりません:
getSelectedMember(int row)
これを行うためにこのメソッドを追加しますが、正しくありません!
UserInformation
クラス:
長いコードでごめんなさい。
java - 以下のコードでコンストラクターが機能しないのはなぜですか?
ここでは、コンストラクターを使用してテーブル内の行数を動的に割り当てたいと考えています。datamodel はクラスであり、 datamodel(int count) メソッドは no.of 行を割り当てます。
これは、データモデルに行数を渡したいabstracttablemodelです。
java - JTable に空の行を追加しています (AbstractTableModel を実装しています)。モデルをリアルタイムで更新するにはどうすればよいですか?
わかりましたので、ここで質問しなければならないのはタイトルだけだと思います。
空のAbstractTableModel
行を追加したいときは、次のコードを使用します。
今、私は空の行を表示しているので、ユーザーにそれを編集してもらいたいのですが、ユーザーがそうすると思います。では、ユーザーが変更を加えたときにデータが配列に保存されるようにするにはどうすればよいでしょうか? または、それが不可能な場合、より良い代替手段はありますか?
わかりましたので、おそらく私がやりたいことを説明する必要があります:
ファイルから内容を読み込んで、表として表示しています。これで、ユーザーはボタンをクリックしてテーブルに新しい行を追加できAdd Row
ます。これにより、クリックごとに 1 つの空の行が追加されます。(上のこの画像では、ボタンを 2 回押した場合の例です。
今、ユーザーがセルを編集してから、おそらくいくつかの行を削除できるようにしたいのですが、Save Database
ボタンをクリックすると、テーブル内の更新されたデータが保存されます。
java - モデル値に応じて JTable の個々のセルを非表示にする
整数値 0、1、および 2 を許可するモデルからの値を示す JTable があります。値は、9 x 9 のグリッド (数独ゲーム ボードのように) に表示されます。
私の質問は次のとおりです。GUI からゼロ値を非表示にするにはどうすればよいですか?
つまり、モデル値がゼロのテーブル セルでは、GUI に値を表示させたくありません。ただし、計算が行われているため、モデルにはゼロ値が含まれている必要があります。
DefaultTableCellRenderer を使用し、setVisible(true) (この質問のように) を使用してセル コンポーネントを非表示に設定しようとしましたが、結果が得られません。
DefaultTableCellRenderer を使用して、モデルの状態に応じてセルの背景色を切り替えることができました (セルが「負」と見なされる場合)。背景色を表示したままにします。
私はJavaに少し慣れていないので、これは単なる更新の問題でしょうか?
ここに私の DefaultTableCellRenderer があります:
「getAbsoluteValueAt」メソッドは整数 0、1、または 2 を返します。背景色の変更は完全に正常に機能します。
私のモデルは AbstractTableModel を拡張し、JTable は次のようにレンダラーを使用します。
この情報が私の問題とこれまでの努力を説明するのに十分であることを願っています。詳細についてはお問い合わせください。提供いたします。
前もって感謝します。/フレドリック
java - 複数の TableModel を単一の TableModelManager に抽出することによる設計の改善
私は自分のデザインのこの特定の部分に行き詰まっており、どのようにアプローチすべきかについて意見を求めています。私のプログラムはコースLeerTrajecten
と要素で構成されていますElementen
。これらのオブジェクトはどちらも独立して存在できますが、要素をコースに追加することもできます。
それ自体は、、 などElement
のオブジェクトの抽象スーパークラスです。Document
Casus
(1) 要素がコースに追加されると、前の 2 つのフィールドとその他のデータ ( 、 ) で構成される固有のコード ( 、 ) を含むコース要素LeerTrajectenElement
が作成されます。TrajectCode
ElementCode
DisplayNaam
DisplayOmschrijving
JTabbedPane
GUI (Spring) には、これらのコースと要素の管理専用のいくつかのタブ ( ) があります。すべてのタブには、概要と詳細パネルがあります。この概要では、JTable
すべての既存のElement
またはを表示する がありますTraject
。
これは単に、プログラムをパースペクティブ ( ) に配置し、複数のタブが同時にアクティブでLeerTrajectElement
ある可能性があることを示すことを目的としています。JTable
(2) それぞれのオブジェクト ( LeerTrajectManager
manages LeerTraject
、ElementManager
managesElement
など) を管理することを唯一の目的とするマネージャーもいます。これらのマネージャはDomeincontroller
、ドメイン全体の一般的なファサードとして機能する に知られています。GUI からの要求はこれDomeinController
に送信され、要求がマネージャー向けである場合は、正しいものに送信されます。
これが私のプログラムの基本的な概要です。視覚的な補助としていくつかの図を含めます。
(1)
(2)
プロジェクトの現在のセットアップに関する適切な情報を提供できたことを願っています。何らかの理由でモデルが正しく表示されませんDomeinController
が、3 つのマネージャーが保持されています (概要には表示されませんが、関連付けは存在します)。
図 2 でわかるように、すべてのマネージャーは tableModel を保持しています。TableModel は次のように定義されます。
MyAbstractTableModel
基本的な実装を拡張AbstractTableModel
して提供するため、非常に基本的なニーズのみを提供しながら、特定の実装をこのクラスから派生させることができます。
ここが要点です。現在、すべてのマネージャーは独自の tableModel を保持しており、私たち (教師) はこれをマネージャーに抽象化する必要があると判断しました。私はこれの実装に取り組んできましたが、何か根本的な間違いを犯したように感じました.特定のコースなどにリンクされたすべての要素が必要です。
このようなものを取得するために、2 つのgetTableModel
メソッドを作成してみました。最初のものは引数として列挙型 { LEERTRAJECT
, ELEMENT
, LEERTRAJECTELEMENT
} のみを取りましたが、2 番目のものは引数として追加のものを取りましたList<E>
。これを行うと、適切なマネージャーによって以前に収集できたデータをリクエストに一般的に追加できます(したがって、結果セットデータのみをTableModelManager
.
このアプローチは、my 内のすべてのメソッドに対して、メソッドで何が起こるべきか、どの tableModel を使用する必要があるかを判断するSwitch
ために、多くのステートメントを作成することになりました。TableModelManager
コードがかなり不潔になったので、これはおそらく私が望んでいた方法ではないだろうと考えました。
そもそもなぜマネージャーを導入する必要があるのかというと、どうやら私たちのテーブルモデルはそれぞれのマネージャーにハードリンクされているようで、これを避けるべきです。
結論として、私にはいくつかのマネージャーがいてTableModel
、それぞれのデータを表示するために を保持しています。TableModel
現在を保持することでこれを集中化し、TableModelManager
このオブジェクトを介してテーブルモデルを生成したいと思います。他のマネージャは単に への参照を保持TableModelManager
し、データが変更されたことを伝えたり、適切なモデルを要求したりします。
これにどのようにアプローチすればよいですか?
PS: これは設計上の問題であると認識しているので、これを stackexchange ネットワークの別のサイトに配置する必要がある場合は、お知らせください。これを削除します。
PPS: 英語以外の部分については申し訳ありません。チームメイトは英語のみの使用を拒否しました。
java - Java複数テーブルモデルの同じArrayList
複数の JTable でデータの重複を避けるのに苦労しています。基本的に、データの配列リストと string[] ヘッダーを持つ TableModel があります。
これまでのところ新しいものはありません。これで、データの同じ arraylist を持つ別の TableModel がありますが、別の string[] ヘッダーがあります。
コードを機能させることができません。複数のテーブルモデルでデータのarrayListを共有する方法について、いくつかのアイデアをいただければ幸いです。
したがって、データを変更すると、すべてのモデルが更新され、データの重複はありません。arraylist のコピーを避けたいのですか、それともこの設定が間違っていますか? リスナーを試してみましたが、そのようにしても、テーブル モデル全体でデータの重複が残っていると思います。
今、同じデータを持つ別のテーブルがありますが、3 つの列 (LNAME、FNAME、AGE) しかないため、getColumnClass は同じではありません。質問は、自分の gymList データ (arrayList) を別のテーブル モデルと共有できますか? ありがとうございました
java - JTable 行の削除
私はjTableに取り組んでおり、テーブルで実行されるデータ操作の一部として特定の行を削除するつもりです。基本的に、ユーザーが指定する行を正常に削除できましたが、実際にやりたいのは、ブール状態またはテーブルの 4 つの列の一部として選択されているチェック ボックスに基づいていくつかの行を削除することです。
コードを実行した現在の結果に関するスクリーンショットを添付しました。選択したブール値の状態またはチェック ボックスに基づいて行を削除できるようにしたいと考えています。
以下は、AbstractTableModel を拡張するテーブル モデル コードを含むコードです。
JTable の行を削除する新しい試み:
}
java - swing jtable はデフォルトで行数を表示します
Java swing と NetBeans を使用してデスクトップ アプリケーションを開発しています。カスタム テーブル モデルの jtable を使用してデータをレンダリングします。表示される実際の行数が最小値よりも少ない場合でも、テーブルに追加のダミー行を表示して最小数を補うように、テーブルに最小行数を表示したいと考えています。
以下は、テーブル モデルのコード ニペットです。
利用可能な提案。