3

次のようなスレッドのセットを視覚化したいと思いますSet<ThreadInfo>SetJVM内のすべてのスレッドが一意であるため、を選択します。Java SwingのコンポーネントJTableで表示することを選択すると、いくつかの問題に直面します。

TableModelを実装する必要があります。TableModelは、変更された値を伝播するために、getValueAt(int row, int col)またはに依存します。setValueAt(Object o, int row, int col)

しかし、データモデルとしてSetを使用してこれらのメソッドを実装するにはどうすればよいですか?リストの場合はrow=list indexと言いますが、セットの場合は要素の順序について推測することはできません。

4

4 に答える 4

3

テーブルのバッキングでは信頼できる順序付けがかなり重要であるため、リストの使用に固執します。これに失敗すると、 TreeSetなどのソートされたセットを使用できます。

于 2011-04-07T15:34:15.833 に答える
2

スレッドの順序付け方法を決定し、正しく順序付けされたリストにセットのコピーを作成します。そのリストをモデルに使用します。セットが変更されたら、新しく並べ替えられたデータでリストを更新します。

于 2011-04-07T15:35:16.153 に答える
0

Set は、インデックスを介してオブジェクトを取得するメソッドを提供しません。

リストを使用して、必要なことを行う必要があります。

または、パラメーターによって渡されたインデックスが「int 行」に渡されるまで、要素を反復処理します (この解決策は避けてください)。

于 2011-04-07T15:43:27.257 に答える
0

テーブルは本質的にリストを表示します。基礎となるデータ モデルは通常、ベクターのベクターまたは Object[][] 配列です。したがって、この場合、セットをリストに変換する必要があり (そのため、同期を維持する 2 つのデータ構造が必要です)、合理的なランダム アクセスが必要です。小さなセットを反復処理して何かを見つけるには問題ないかもしれませんが、 JTable は特定の状況下で頻繁に要求するため、かなりのサイズが問題になります。

于 2011-04-07T15:45:30.393 に答える