Java 6 の新しい JTable 行ソーターを使用したいのですが、Mac OSX と Java 5 との互換性も必要です。
実行時に JVM のバージョンを確認し、行ソーターを使用する場合と使用しない場合で JTable に異なるコードを使用することは可能ですか?
代わりに、 SwingXライブラリの JXTable をいつでも使用できます。ソートが組み込まれています。
JVM のバージョンは、システム プロパティ「java.version」で確認できます。
JTable ソーター オブジェクトのソースをプロジェクトにコピーし、それを使用します。Sun からのライセンスがない限り、これを配布することは許可されていないことに注意してください。したがって、これは、自分自身または会社内でのみ使用するものであれば問題ありません。ネット上での販売やダウンロード販売はダメです。イアナル。
ソーター インターフェイスを実装するヘルパー クラスを作成します。このクラスに、次のコードを入れます。
Class sorterClass = Class.forName("javax.swing.table.TableRowSorter");
これが ClassNotFoundException をスローすると、クラスは使用できなくなります。存在する場合は、Reflection onsorterClass
を使用してインスタンスを作成し、テーブルにインストールします。
注: Java 6 クラスはどこにもインポートしないでください。その場合、ヘルパー クラスのロードは失敗します。また、Java 5 でコードをコンパイルする必要があります。