diff --git a/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.java b/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.java index 484636f0..540f8466 100644 --- a/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.java +++ b/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.java @@ -21,6 +21,7 @@ import java.awt.event.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; +import java.util.Collections; import java.util.Enumeration; import java.util.Locale; import java.util.function.Predicate; @@ -124,6 +125,8 @@ public class FlatUIDefaultsInspector table.setModel( new ItemsTableModel( getUIDefaultsItems() ) ); table.setDefaultRenderer( String.class, new KeyRenderer() ); table.setDefaultRenderer( Item.class, new ValueRenderer() ); + table.getRowSorter().setSortKeys( Collections.singletonList( + new RowSorter.SortKey( 0, SortOrder.ASCENDING ) ) ); // restore window bounds Preferences prefs = getPrefs(); @@ -214,7 +217,6 @@ public class FlatUIDefaultsInspector items.add( new Item( String.valueOf( key ), value ) ); } - items.sort( (item1, item2) -> item1.key.compareToIgnoreCase( item2.key ) ); return items.toArray( new Item[items.size()] ); } @@ -386,6 +388,9 @@ public class FlatUIDefaultsInspector //======== scrollPane ======== { + + //---- table ---- + table.setAutoCreateRowSorter(true); scrollPane.setViewportView(table); } panel.add(scrollPane, BorderLayout.CENTER); @@ -484,6 +489,12 @@ public class FlatUIDefaultsInspector } else return String.format( hasAlpha ? "#%06X%02X" : "#%06X", rgb & 0xffffff, (rgb >> 24) & 0xff ); } + + // used for sorting by value + @Override + public String toString() { + return getValueAsString(); + } } //---- class ItemsTableModel ---------------------------------------------- diff --git a/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.jfd b/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.jfd index bb795203..a5793f5d 100644 --- a/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.jfd +++ b/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.jfd @@ -73,6 +73,7 @@ new FormModel { name: "scrollPane" add( new FormComponent( "javax.swing.JTable" ) { name: "table" + "autoCreateRowSorter": true } ) }, new FormLayoutConstraints( class java.lang.String ) { "value": "Center"