diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPage.java index 6bea32ef9..d68d4b034 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPage.java @@ -104,7 +104,7 @@ public final class ModListPage extends ListPageBase { if (newValue) - itemsProperty().setAll(list.stream().map(ModListPageSkin.ModInfoObject::new).collect(Collectors.toList())); + itemsProperty().setAll(list.stream().map(ModListPageSkin.ModInfoObject::new).sorted().collect(Collectors.toList())); })); else getProperties().remove(ModListPage.class); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java index 63d28f2f0..99ab9090d 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java @@ -39,6 +39,7 @@ import org.jackhuang.hmcl.ui.SVG; import org.jackhuang.hmcl.ui.construct.FloatListCell; import org.jackhuang.hmcl.ui.construct.SpinnerPane; import org.jackhuang.hmcl.ui.construct.TwoLineListItem; +import org.jetbrains.annotations.NotNull; import static org.jackhuang.hmcl.ui.ToolbarListPageSkin.createToolbarButton; import static org.jackhuang.hmcl.util.StringUtils.isNotBlank; @@ -131,7 +132,7 @@ class ModListPageSkin extends SkinBase { getChildren().setAll(pane); } - static class ModInfoObject extends RecursiveTreeObject { + static class ModInfoObject extends RecursiveTreeObject implements Comparable { private final BooleanProperty active; private final ModInfo modInfo; private final String message; @@ -160,5 +161,10 @@ class ModListPageSkin extends SkinBase { ModInfo getModInfo() { return modInfo; } + + @Override + public int compareTo(@NotNull ModListPageSkin.ModInfoObject o) { + return modInfo.getFileName().toLowerCase().compareTo(o.modInfo.getFileName().toLowerCase()); + } } }