JDK1.6 に更新したため、最近、アプリケーションの SwingX ライブラリをバージョン 1.0 から 1.6.2 に更新しました。JDK 1.6 で導入されたコア JDK コンポーネントの一部を再利用するように並べ替えが変更されたことは知っています。
ただし、バージョン 1.0 では、ヘッダーをクリックして列を並べ替えることができ、その後のクリックで並べ替え順序が元に戻り、Shift クリックで並べ替えが削除されて元の順序に戻りました。バージョン 1.6.2 への更新後、シフト クリックの動作はなくなりました。
小さなサンプル
import org.jdesktop.swingx.JXTable;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
import java.awt.EventQueue;
public class JXTableSortingTest {
public static void main( String[] args ) {
EventQueue.invokeLater( new Runnable() {
public void run() {
initUI();
}
} );
}
private static void initUI(){
JFrame testFrame = new JFrame( "TestFrame" );
JXTable table = new JXTable( );
DefaultTableModel model =
new DefaultTableModel( new Object[][]{ new Object[]{"A"}, new Object[]{"B"}, new Object[]{"C"}, new Object[]{"D"}, new Object[]{"E"} }, new Object[]{"Click me"} );
table.setModel( model );
testFrame.getContentPane().add( new JScrollPane( table ) );
testFrame.pack();
testFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
testFrame.setVisible( true );
}
}
このサンプルをバージョン 1.0 で実行すると、ヘッダーを Shift キーを押しながらクリックして列の並べ替えを削除できますが、バージョン 1.6.2 ではこれが機能しなくなりました。
ドキュメントを確認しましたが、この動作を元に戻すものは何も見つかりませんでした。したがって、この機能を追加する前に、シフトクリックの動作を簡単に再導入する方法を誰かが知っているかどうかをここで尋ねました