2012-01-21 3 views
0

SWTを使用してJavaアプリケーションを設計しています。私はデータベースからのデータを表示するテーブルをいくつか持っています。姓と年齢を表示したい場所もあれば、他の場所では氏名、年齢、給料を表示したい場所もあります。私は、漫画のキャラクターの名前、キャラクターが何であるか、そのキャラクターが「良い」キャラクターか「悪い」キャラクターか、どのキャラクターがどれほどよく知られているかなどのランキングを表示したい場合もあります。動的表を表示するためのJavaパターン?

私の要点を説明するための例です。私はどのデータベースにも存在するようなリレーショナルデータを表示したい。 SWTには、この種のデータを表示するのに最適なテーブルウィジェットがあります(ほとんどのGUIライブラリで期待されていますが)。私の現在のデザインの問題は、必要なときに必要なカラムをテーブルに取り付けることです。ですから、一度に列A、B、Cをつけるつもりです。ここでは、列X、Y、Zを付けています。データを受け取る前に列の表示が正確にわからない場合はどうすればよいですか?

列情報をデータ自体に移動するためのパターンはありますか?私はこれがかなり一般的な必要であると思います。

私は文字列のリストを返すメソッドを使ってRowオブジェクトのコンテナを設計することを考えました。これらのStringは列のタイトルになります。 Rowオブジェクトは、指定された列の値を返すメソッドを実装できますが、各列は異なる型を持つ可能性があります。また、コンテナが列名を定義するのはむしろ奇妙に思えます。次に、コンテナ内のRowオブジェクトは、必要な動作の残りの半分を定義する必要があります。すべての必要なメソッドが複数のインターフェイスにまたがっているように感じます。

私が見ることができるどんなデザインパターンや既存のウィジェットも大いに感謝します。ありがとう。

答えて

2

「私は、列情報をデータそのものに移動するために考えられるパターンはありますか?これはかなり一般的な必要性だと思います」

列/行の数、各列のデータの種類などを「事前定義」することなく、データベースから取得する一部のデータを表示するテーブルを作成するように思えます。 TableModelを構築するための例とチュートリアルでは?

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data

データベースからデータを取得したら、あなたは、単にDefaultTableModelのインスタンスを作成します。 DefaultTableModelのコンストラクタを見ると、Object型の2次元配列(またはベクトルのベクトル、または...あなたが考えを得る)のいずれかを受け入れることができます。これは、必要がないことを意味しますデータの「タイプ」を気にする。 JTableは、モデルに含まれるものに基づいてデータを最適に表示する方法を理解します。あなたの質問を完全に誤解している場合は、事前にお詫び申し上げます。

+0

ありがとうございます。 TableModalインターフェイスは、私が探しているものに近いです。それはSWTにはありませんが、おそらくそれを使用したり、少なくとも私自身のインターフェースで同じアイデアを使用することができます。 – Buttons840

関連する問題