2011-07-21 15 views
3

JTableの特定の列に対してカスタムコンパレータを設定するにはどうすればよいですか?JTableの特定の列のコンパレータ

テーブルの3番目の列にはdouble値の文字列表現が含まれています。その列のヘッダーをクリックするとコンパレータに従ってソートされるようにその列のコンパレータを作成します。

+0

Javaのどのバージョンですか? – g051051

+0

@ Eng.Fouadもし存在すれば1)ローカライズされたネイティブOS 2)ネイティブOSに適切なフォントをインストールして使用する3)正しく設定されたJaveエンコーディング....その後、私は問題を見ることができません。コード、ちょうど私の好奇心、あなたはそれに問題があった場合は、なぜインド、中国または日本の作品、または私は間違っている – mKorbel

答えて

4

最初の質問は、ダブルスを管理している場合、文字列を扱っている理由です。倍精度を使用し、その列のCellRendererで書式を設定するだけでよいはずです。 http://download.oracle.com/javase/tutorial/uiswing/examples/components/TableSorterDemoProject/src/components/TableSorter.java


EDIT:

とにかく、あなたが探していることは、このかもしれダブルから、あなたの表現に何らかの形で翻訳が複雑であれば、私は二重番号の両方が含まれている同等のクラスを作成しますと、 String表現equals()、hashcode()およびcompareTo()は、doubleの値を使用して実装されます。 cellRenderer()およびtoString()はString表現を使用します。

+0

私は文字列を使用するようにアラビア数字を使用する –

+1

+1これは好ましいアプローチです。レンダラーがビューを処理させます。モデルに「Double」を使用させます。 – trashgod

+0

@ Eng.Fouad、DoubleからString表現に渡すコードはありますか? – SJuan76

4

この中でexample,class Value implements Comparable<Value>

+1

この方法は、[default](http:// download)とは異なる特定の[自然順序付け](http://download.oracle.com/javase/tutorial/collections/interfaces/order.html)に影響を与えるのに便利です。 oracle.com/javase/tutorial/uiswing/components/table.html#editrender)。 'Comparable'の実装は' Double'に委譲されていることに注意してください。 – trashgod