Java GUIを初めて使用し、SWINGでjTableを使用しようとしました。私は現在、私はOracleのチュートリアルに従うことによって作られたものを持っており、それが使用してテーブルのデータを取得します。ArrayListオブジェクトからのJava jTableデータと他のメソッドからの更新
Object[][] data = {
{"Kathy", "Smith",
"Snowboarding", new Integer(5), new Boolean(false)},
{"John", "Doe",
"Rowing", new Integer(3), new Boolean(true)},
{"Sue", "Black",
"Knitting", new Integer(2), new Boolean(false)},
{"Jane", "White",
"Speed reading", new Integer(20), new Boolean(true)},
{"Joe", "Brown",
"Pool", new Integer(10), new Boolean(false)}
};
私はプロジェクトのオブジェクトの数に制限が含まれているのArrayList(productsInOrder)を持つ受注と呼ばれるオブジェクトを持っています。私はArrayListの各オブジェクトの次のそれぞれを表示するテーブルを取得しようとしています。 productsInOrder.getPrice()productsInOrder.getSKU()productsInOrder.getName()
誰かが正しい方向に向いていますか?または、私がインターネット全体を見てきたので、これを理解できないチュートリアルにリンクしてください。
最後に、ユーザーが特定のアクションを実行したときに、ProductListオブジェクトをArrayListに追加するアクションリスナーがあります。 jTableをどのように更新すればよいですか?単純にアクションリスナーのjTable全体をリロードするか、単にテーブルに別の行を追加する方法がありますか?
@Joseph Flynn私はhttp://java.sun.com/products/jfc/tsc/articles/ChristmasTree/に投票しました。 @camickr +1 – mKorbel
@camickr - このチュートリアルに戻って私に指摘してくれてありがとう、再読み込みは大きな助けとなっています。私がまだ理解していない1ビットは、テーブルを更新するのが暑いです。 ArrayListと他の場所でArrayListを使用するので、カスタムTableModelのArrayListとaddRow(...)メソッドを更新する必要がありますか?コードを複製するので、このコーディングは悪いですか?ありがとう。 – Joseph
私は、ArrayListではなく、TableModelを直接更新することをお勧めしました。 RowTableModelには、個々のオブジェクトにアクセスできるようにaddRow()やremoveRow()などのメソッドがあります。 ArrayListを直接更新すると、TableModelはデータが変更されたことを認識しません。この場合、ArrayListを更新するコードでは、テーブル全体を再ペイントするためにtable.repaint()を呼び出す必要があります。これは良い考えではありません。これは、MVCデザインでは、モデルは、データが変更されたときにビューに通知します。 – camickr