Je ne connais pas d'API pour faire cela. Le code suivant trouve la table utilisée par le sélecteur de fichiers, puis effectue manuellement le tri sur la colonne de date :
JFrame frame = new JFrame();
JFileChooser fileChooser = new JFileChooser(".");
Action details = fileChooser.getActionMap().get("viewTypeDetails");
details.actionPerformed(null);
// Find the JTable on the file chooser panel and manually do the sort
JTable table = SwingUtils.getDescendantsOfType(JTable.class, fileChooser).get(0);
table.getRowSorter().toggleSortOrder(3);
fileChooser.showOpenDialog(frame);
Vous aurez aussi besoin de Darryl Swing Utils classe.
Editar:
Apparemment, une certaine logique a été modifiée dans une version ultérieure, comme le suggère un commentaire ci-dessous :
Essayez :
JTable table = SwingUtils.getDescendantsOfType(JTable.class, fileChooser).get(0);
table.getModel().addTableModelListener( new TableModelListener()
{
@Override
public void tableChanged(TableModelEvent e)
{
table.getModel().removeTableModelListener(this);
SwingUtilities.invokeLater( () -> table.getRowSorter().toggleSortOrder(3) );
}
});
fileChooser.showOpenDialog(frame);
Cela ajoutera le basculement de l'ordre de tri à la fin de l'EDT (Event Dispatch Thread) afin qu'il s'exécute après le comportement par défaut de la vue détaillée de la JTable.