Недавно я обновил библиотеку SwingX в приложении с версии 1.0 до 1.6.2, так как мы обновились до JDK1.6. Я знаю, что сортировка была изменена для повторного использования некоторых компонентов Core JDK, представленных в JDK 1.6.
Однако в версии 1.0 можно было отсортировать столбец, щелкнув заголовок, последующие щелчки вернули порядок сортировки, а Shift щелкнул сортировку и вернул исходный порядок. После обновления до версии 1.6.2 поведение щелчка Shift больше не присутствует.
Небольшой образец
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 позволяет удалить сортировку столбцов щелчком мыши по заголовку, а с версией 1.6.2 это больше не работает.
Я проверил документы, но ничего не нашел, чтобы снова включить это поведение. Поэтому, прежде чем я начну добавлять эту функцию, я хотя и спросил ее здесь, знает ли кто-нибудь простой способ повторно ввести поведение Shift-щелчка.