From 9c882575bffd4bedc446040c474328a0dd22185c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=9E=E5=BA=90?= <109708109+Ciilu@users.noreply.github.com> Date: Mon, 23 Feb 2026 23:27:44 +0800 Subject: [PATCH 1/3] update --- .../org/jackhuang/hmcl/ui/InstallerItem.java | 4 +--- .../hmcl/ui/account/AccountListItemSkin.java | 16 ++++------------ .../hmcl/ui/main/JavaManagementPage.java | 4 +--- .../jackhuang/hmcl/ui/main/JavaRestorePage.java | 12 +++--------- .../hmcl/ui/main/PersonalizationPage.java | 8 ++------ .../jackhuang/hmcl/ui/versions/GameListCell.java | 12 +++--------- .../hmcl/ui/versions/ModListPageSkin.java | 15 +++------------ .../hmcl/ui/versions/ResourcepackListPage.java | 10 ++-------- .../hmcl/ui/versions/SchematicsPage.java | 8 ++------ .../hmcl/ui/versions/WorldBackupsPage.java | 8 ++------ .../hmcl/ui/versions/WorldListPage.java | 8 ++------ 11 files changed, 25 insertions(+), 80 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java index 49ac45ce1c..ebbd882bda 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/InstallerItem.java @@ -348,9 +348,7 @@ private static final class InstallerItemSkin extends SkinBase { buttonsContainer.setAlignment(Pos.CENTER); pane.getChildren().add(buttonsContainer); - JFXButton removeButton = new JFXButton(); - removeButton.setGraphic(SVG.CLOSE.createIcon()); - removeButton.getStyleClass().add("toggle-icon4"); + JFXButton removeButton = FXUtils.newToggleButton4(SVG.CLOSE); if (control.id.equals(MINECRAFT.getPatchId())) { removeButton.setVisible(false); } else { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountListItemSkin.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountListItemSkin.java index 917917d8cf..973e5787d1 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountListItemSkin.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/AccountListItemSkin.java @@ -125,7 +125,7 @@ public AccountListItemSkin(AccountListItem skinnable) { spinnerMove.setContent(btnMove); right.getChildren().add(spinnerMove); - JFXButton btnRefresh = new JFXButton(); + JFXButton btnRefresh = FXUtils.newToggleButton4(SVG.REFRESH); SpinnerPane spinnerRefresh = new SpinnerPane(); spinnerRefresh.getStyleClass().setAll("small-spinner-pane"); if (skinnable.getAccount() instanceof MicrosoftAccount && Accounts.OAUTH_CALLBACK.getClientId().isEmpty()) { @@ -144,13 +144,11 @@ public AccountListItemSkin(AccountListItem skinnable) { }) .start(); }); - btnRefresh.getStyleClass().add("toggle-icon4"); - btnRefresh.setGraphic(SVG.REFRESH.createIcon()); FXUtils.installFastTooltip(btnRefresh, i18n("button.refresh")); spinnerRefresh.setContent(btnRefresh); right.getChildren().add(spinnerRefresh); - JFXButton btnUpload = new JFXButton(); + JFXButton btnUpload = FXUtils.newToggleButton4(SVG.CHECKROOM); SpinnerPane spinnerUpload = new SpinnerPane(); btnUpload.setOnAction(e -> { Task uploadTask = skinnable.uploadSkin(); @@ -161,29 +159,23 @@ public AccountListItemSkin(AccountListItem skinnable) { .start(); } }); - btnUpload.getStyleClass().add("toggle-icon4"); - btnUpload.setGraphic(SVG.CHECKROOM.createIcon()); FXUtils.installFastTooltip(btnUpload, i18n("account.skin.upload")); btnUpload.disableProperty().bind(Bindings.not(skinnable.canUploadSkin())); spinnerUpload.setContent(btnUpload); spinnerUpload.getStyleClass().add("small-spinner-pane"); right.getChildren().add(spinnerUpload); - JFXButton btnCopyUUID = new JFXButton(); + JFXButton btnCopyUUID = FXUtils.newToggleButton4(SVG.CONTENT_COPY); SpinnerPane spinnerCopyUUID = new SpinnerPane(); spinnerCopyUUID.getStyleClass().add("small-spinner-pane"); - btnCopyUUID.getStyleClass().add("toggle-icon4"); btnCopyUUID.setOnAction(e -> FXUtils.copyText(skinnable.getAccount().getUUID().toString())); - btnCopyUUID.setGraphic(SVG.CONTENT_COPY.createIcon()); FXUtils.installFastTooltip(btnCopyUUID, i18n("account.copy_uuid")); spinnerCopyUUID.setContent(btnCopyUUID); right.getChildren().add(spinnerCopyUUID); - JFXButton btnRemove = new JFXButton(); + JFXButton btnRemove = FXUtils.newToggleButton4(SVG.DELETE); btnRemove.setOnAction(e -> Controllers.confirm(i18n("button.remove.confirm"), i18n("button.remove"), skinnable::remove, null)); - btnRemove.getStyleClass().add("toggle-icon4"); BorderPane.setAlignment(btnRemove, Pos.CENTER); - btnRemove.setGraphic(SVG.DELETE.createIcon()); FXUtils.installFastTooltip(btnRemove, i18n("button.delete")); right.getChildren().add(btnRemove); root.setRight(right); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaManagementPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaManagementPage.java index fd2ba908fb..5fa9e5b9f5 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaManagementPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaManagementPage.java @@ -241,9 +241,7 @@ private static final class JavaItemCell extends ListCell { HBox right = new HBox(); right.setAlignment(Pos.CENTER_RIGHT); { - JFXButton revealButton = new JFXButton(); - revealButton.setGraphic(SVG.FOLDER_OPEN.createIcon()); - revealButton.getStyleClass().add("toggle-icon4"); + JFXButton revealButton = FXUtils.newToggleButton4(SVG.FOLDER_OPEN); revealButton.setOnAction(e -> { JavaRuntime java = getItem(); if (java != null) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaRestorePage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaRestorePage.java index 065acd0789..d783a9792d 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaRestorePage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaRestorePage.java @@ -157,26 +157,20 @@ private static final class DisabledJavaItemSkin extends SkinBase skinnable.onReveal()); FXUtils.installFastTooltip(revealButton, i18n("reveal.in_file_manager")); if (skinnable.realPath == null) { revealButton.setDisable(true); - JFXButton removeButton = new JFXButton(); - removeButton.getStyleClass().add("toggle-icon4"); - removeButton.setGraphic(SVG.DELETE.createIcon()); + JFXButton removeButton = FXUtils.newToggleButton4(SVG.DELETE); removeButton.setOnAction(e -> skinnable.onRemove()); FXUtils.installFastTooltip(removeButton, i18n("java.disabled.management.remove")); right.getChildren().setAll(revealButton, removeButton); } else { - JFXButton restoreButton = new JFXButton(); - restoreButton.getStyleClass().add("toggle-icon4"); - restoreButton.setGraphic(SVG.RESTORE.createIcon()); + JFXButton restoreButton = FXUtils.newToggleButton4(SVG.RESTORE); restoreButton.setOnAction(e -> skinnable.onRestore()); FXUtils.installFastTooltip(restoreButton, i18n("java.disabled.management.restore")); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/PersonalizationPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/PersonalizationPage.java index bc12984fa8..6f19448095 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/PersonalizationPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/PersonalizationPage.java @@ -226,9 +226,7 @@ public void changed(ObservableValue observable, E .fallbackTo(12.0) .asPredicate(Validator.addTo(txtLogFontSize))); - JFXButton clearButton = new JFXButton(); - clearButton.getStyleClass().add("toggle-icon4"); - clearButton.setGraphic(SVG.RESTORE.createIcon()); + JFXButton clearButton = FXUtils.newToggleButton4(SVG.RESTORE); clearButton.setOnAction(e -> cboLogFont.setValue(null)); FXUtils.installFastTooltip(clearButton, i18n("button.reset")); @@ -276,9 +274,7 @@ public void changed(ObservableValue observable, E cboFont.setValue(config().getLauncherFontFamily()); FXUtils.onChange(cboFont.valueProperty(), FontManager::setFontFamily); - JFXButton clearButton = new JFXButton(); - clearButton.getStyleClass().add("toggle-icon4"); - clearButton.setGraphic(SVG.RESTORE.createIcon()); + JFXButton clearButton = FXUtils.newToggleButton4(SVG.RESTORE); clearButton.setOnAction(e -> cboFont.setValue(null)); FXUtils.installFastTooltip(clearButton, i18n("button.reset")); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameListCell.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameListCell.java index a21f80ca59..97479b7bcb 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameListCell.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/GameListCell.java @@ -108,30 +108,26 @@ public void fire() { right.setAlignment(Pos.CENTER_RIGHT); - this.btnUpgrade = new JFXButton(); + this.btnUpgrade = FXUtils.newToggleButton4(SVG.UPDATE); btnUpgrade.setOnAction(e -> { GameListItem item = this.getItem(); if (item != null) item.update(); }); - btnUpgrade.getStyleClass().add("toggle-icon4"); - btnUpgrade.setGraphic(SVG.UPDATE.createIcon()); FXUtils.installFastTooltip(btnUpgrade, i18n("version.update")); right.getChildren().add(btnUpgrade); - this.btnLaunch = new JFXButton(); + this.btnLaunch = FXUtils.newToggleButton4(SVG.ROCKET_LAUNCH); btnLaunch.setOnAction(e -> { GameListItem item = this.getItem(); if (item != null) item.testGame(); }); - btnLaunch.getStyleClass().add("toggle-icon4"); BorderPane.setAlignment(btnLaunch, Pos.CENTER); - btnLaunch.setGraphic(SVG.ROCKET_LAUNCH.createIcon()); FXUtils.installFastTooltip(btnLaunch, i18n("version.launch.test")); right.getChildren().add(btnLaunch); - this.btnManage = new JFXButton(); + this.btnManage = FXUtils.newToggleButton4(SVG.MORE_VERT); btnManage.setOnAction(e -> { GameListItem item = this.getItem(); if (item == null) @@ -141,9 +137,7 @@ public void fire() { JFXPopup.PopupVPosition vPosition = determineOptimalPopupPosition(root, popup); popup.show(root, vPosition, JFXPopup.PopupHPosition.RIGHT, 0, vPosition == JFXPopup.PopupVPosition.TOP ? root.getHeight() : -root.getHeight()); }); - btnManage.getStyleClass().add("toggle-icon4"); BorderPane.setAlignment(btnManage, Pos.CENTER); - btnManage.setGraphic(SVG.MORE_VERT.createIcon()); FXUtils.installFastTooltip(btnManage, i18n("settings.game.management")); right.getChildren().add(btnManage); } 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 f941da1b71..01cc58f5a4 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 @@ -556,9 +556,9 @@ final class ModInfoListCell extends MDListCell { JFXCheckBox checkBox = new JFXCheckBox(); ImageView imageView = new ImageView(); TwoLineListItem content = new TwoLineListItem(); - JFXButton restoreButton = new JFXButton(); - JFXButton infoButton = new JFXButton(); - JFXButton revealButton = new JFXButton(); + JFXButton restoreButton = FXUtils.newToggleButton4(SVG.RESTORE); + JFXButton infoButton = FXUtils.newToggleButton4(SVG.INFO); + JFXButton revealButton = FXUtils.newToggleButton4(SVG.FOLDER_OPEN); BooleanProperty booleanProperty; Tooltip warningTooltip; @@ -580,17 +580,8 @@ final class ModInfoListCell extends MDListCell { imageView.setPreserveRatio(true); imageView.setImage(VersionIconType.COMMAND.getIcon()); - restoreButton.getStyleClass().add("toggle-icon4"); - restoreButton.setGraphic(SVG.RESTORE.createIcon()); - FXUtils.installFastTooltip(restoreButton, i18n("mods.restore")); - revealButton.getStyleClass().add("toggle-icon4"); - revealButton.setGraphic(SVG.FOLDER.createIcon()); - - infoButton.getStyleClass().add("toggle-icon4"); - infoButton.setGraphic(SVG.INFO.createIcon()); - container.getChildren().setAll(checkBox, imageView, content, restoreButton, revealButton, infoButton); StackPane.setMargin(container, new Insets(8)); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ResourcepackListPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ResourcepackListPage.java index 55b52a2d21..143026eb31 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ResourcepackListPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ResourcepackListPage.java @@ -183,8 +183,8 @@ Image getIcon() { private static final class ResourcepackListCell extends MDListCell { private final ImageView imageView = new ImageView(); private final TwoLineListItem content = new TwoLineListItem(); - private final JFXButton btnReveal = new JFXButton(); - private final JFXButton btnDelete = new JFXButton(); + private final JFXButton btnReveal = FXUtils.newToggleButton4(SVG.FOLDER_OPEN); + private final JFXButton btnDelete = FXUtils.newToggleButton4(SVG.DELETE_FOREVER); private final ResourcepackListPage page; public ResourcepackListCell(JFXListView listView, ResourcepackListPage page) { @@ -207,12 +207,6 @@ public ResourcepackListCell(JFXListView listView, Resour HBox.setHgrow(content, Priority.ALWAYS); root.setCenter(content); - btnReveal.getStyleClass().add("toggle-icon4"); - btnReveal.setGraphic(SVG.FOLDER_OPEN.createIcon()); - - btnDelete.getStyleClass().add("toggle-icon4"); - btnDelete.setGraphic(SVG.DELETE_FOREVER.createIcon()); - HBox right = new HBox(8); right.setAlignment(Pos.CENTER_RIGHT); right.getChildren().setAll(btnReveal, btnDelete); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/SchematicsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/SchematicsPage.java index 60852167a9..ad36a52917 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/SchematicsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/SchematicsPage.java @@ -580,19 +580,15 @@ public Cell() { this.right = new HBox(8); right.setAlignment(Pos.CENTER_RIGHT); - JFXButton btnReveal = new JFXButton(); + JFXButton btnReveal = FXUtils.newToggleButton4(SVG.FOLDER_OPEN); FXUtils.installFastTooltip(btnReveal, i18n("reveal.in_file_manager")); - btnReveal.getStyleClass().add("toggle-icon4"); - btnReveal.setGraphic(SVG.FOLDER_OPEN.createIcon()); btnReveal.setOnAction(event -> { Item item = getItem(); if (item != null && !(item instanceof BackItem)) item.onReveal(); }); - JFXButton btnDelete = new JFXButton(); - btnDelete.getStyleClass().add("toggle-icon4"); - btnDelete.setGraphic(SVG.DELETE_FOREVER.createIcon()); + JFXButton btnDelete = FXUtils.newToggleButton4(SVG.DELETE_FOREVER); btnDelete.setOnAction(event -> { Item item = getItem(); if (item != null && !(item instanceof BackItem)) { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldBackupsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldBackupsPage.java index 5a661eaa99..6538761795 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldBackupsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldBackupsPage.java @@ -255,18 +255,14 @@ private static final class BackupInfoSkin extends SkinBase { root.setRight(right); right.setAlignment(Pos.CENTER_RIGHT); - JFXButton btnReveal = new JFXButton(); + JFXButton btnReveal = FXUtils.newToggleButton4(SVG.FOLDER_OPEN); right.getChildren().add(btnReveal); FXUtils.installFastTooltip(btnReveal, i18n("reveal.in_file_manager")); - btnReveal.getStyleClass().add("toggle-icon4"); - btnReveal.setGraphic(SVG.FOLDER_OPEN.createIcon()); btnReveal.setOnAction(event -> skinnable.onReveal()); - JFXButton btnDelete = new JFXButton(); + JFXButton btnDelete = FXUtils.newToggleButton4(SVG.DELETE); right.getChildren().add(btnDelete); FXUtils.installFastTooltip(btnDelete, i18n("world.backup.delete")); - btnDelete.getStyleClass().add("toggle-icon4"); - btnDelete.setGraphic(SVG.DELETE.createIcon()); btnDelete.setOnAction(event -> Controllers.confirm(i18n("button.remove.confirm"), i18n("button.remove"), skinnable::onDelete, null)); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldListPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldListPage.java index 23778b9cc1..7c27f8e84f 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldListPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldListPage.java @@ -278,12 +278,10 @@ public WorldListCell(WorldListPage page) { root.setRight(right); right.setAlignment(Pos.CENTER_RIGHT); - btnLaunch = new JFXButton(); + btnLaunch = FXUtils.newToggleButton4(SVG.ROCKET_LAUNCH); btnLaunch.visibleProperty().bind(page.supportQuickPlayProperty()); btnLaunch.managedProperty().bind(btnLaunch.visibleProperty()); right.getChildren().add(btnLaunch); - btnLaunch.getStyleClass().add("toggle-icon4"); - btnLaunch.setGraphic(SVG.ROCKET_LAUNCH.createIcon()); FXUtils.installFastTooltip(btnLaunch, i18n("version.launch")); btnLaunch.setOnAction(event -> { World world = getItem(); @@ -291,10 +289,8 @@ public WorldListCell(WorldListPage page) { page.launch(world); }); - JFXButton btnMore = new JFXButton(); + JFXButton btnMore = FXUtils.newToggleButton4(SVG.MORE_VERT); right.getChildren().add(btnMore); - btnMore.getStyleClass().add("toggle-icon4"); - btnMore.setGraphic(SVG.MORE_VERT.createIcon()); btnMore.setOnAction(event -> { World world = getItem(); if (world != null) From 5d66edb679c2c2e35b86b9be52e41b02e48844ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=9E=E5=BA=90?= <109708109+Ciilu@users.noreply.github.com> Date: Mon, 23 Feb 2026 23:32:42 +0800 Subject: [PATCH 2/3] update --- HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java | 7 +++++++ .../org/jackhuang/hmcl/ui/account/CreateAccountPane.java | 4 +--- .../org/jackhuang/hmcl/ui/construct/AdvancedListItem.java | 5 +---- .../org/jackhuang/hmcl/ui/construct/ImagePickerItem.java | 8 ++------ .../java/org/jackhuang/hmcl/ui/main/SettingsPage.java | 4 +--- .../jackhuang/hmcl/ui/profile/ProfileListItemSkin.java | 4 +--- .../org/jackhuang/hmcl/ui/versions/WorldInfoPage.java | 8 ++------ 7 files changed, 15 insertions(+), 25 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java index d233b8f584..45319b1895 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java @@ -1291,6 +1291,13 @@ public static JFXButton newToggleButton4(SVG icon) { return button; } + public static JFXButton newToggleButton4(SVG icon, int size) { + JFXButton button = new JFXButton(); + button.getStyleClass().add("toggle-icon4"); + button.setGraphic(icon.createIcon(size)); + return button; + } + public static Label newSafeTruncatedLabel() { Label label = new Label(); label.setTextOverrun(OverrunStyle.CENTER_WORD_ELLIPSIS); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java index 583e40326c..4b577a180d 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java @@ -399,9 +399,7 @@ public AccountDetailsInputPane(AccountFactory factory, Runnable onAction) { }); linksContainer.setMinWidth(USE_PREF_SIZE); - JFXButton btnAddServer = new JFXButton(); - btnAddServer.setGraphic(SVG.ADD.createIcon(20)); - btnAddServer.getStyleClass().add("toggle-icon4"); + JFXButton btnAddServer = FXUtils.newToggleButton4(SVG.ADD, 20); btnAddServer.setOnAction(e -> { Controllers.dialog(new AddAuthlibInjectorServerPane()); }); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/AdvancedListItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/AdvancedListItem.java index f78f549458..60a09ddce3 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/AdvancedListItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/AdvancedListItem.java @@ -17,7 +17,6 @@ */ package org.jackhuang.hmcl.ui.construct; -import com.jfoenix.controls.JFXButton; import javafx.beans.property.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; @@ -85,13 +84,11 @@ public void setRightGraphic(Node rightGraphic) { } public void setRightAction(SVG icon, Runnable action) { - var button = new JFXButton(); + var button = FXUtils.newToggleButton4(icon, 14); button.setOnAction(e -> { action.run(); e.consume(); }); - button.getStyleClass().add("toggle-icon4"); - button.setGraphic(icon.createIcon(14)); setAlignment(button, Pos.CENTER); setRightGraphic(button); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/ImagePickerItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/ImagePickerItem.java index 203e6fc188..3ed46ca734 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/ImagePickerItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/ImagePickerItem.java @@ -52,15 +52,11 @@ public ImagePickerItem() { imageView.setSmooth(false); imageView.setPreserveRatio(true); - JFXButton selectButton = new JFXButton(); - selectButton.setGraphic(SVG.EDIT.createIcon(20)); + JFXButton selectButton = FXUtils.newToggleButton4(SVG.EDIT, 20); selectButton.onActionProperty().bind(onSelectButtonClicked); - selectButton.getStyleClass().add("toggle-icon4"); - JFXButton deleteButton = new JFXButton(); - deleteButton.setGraphic(SVG.RESTORE.createIcon(20)); + JFXButton deleteButton = FXUtils.newToggleButton4(SVG.RESTORE, 20); deleteButton.onActionProperty().bind(onDeleteButtonClicked); - deleteButton.getStyleClass().add("toggle-icon4"); FXUtils.installFastTooltip(selectButton, i18n("button.edit")); FXUtils.installFastTooltip(deleteButton, i18n("button.reset")); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/SettingsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/SettingsPage.java index 7dddc33e29..ac7085963a 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/SettingsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/SettingsPage.java @@ -140,10 +140,8 @@ public SettingsPage() { } { - JFXButton btnUpdate = new JFXButton(); + JFXButton btnUpdate = FXUtils.newToggleButton4(SVG.UPDATE, 20); btnUpdate.setOnAction(e -> onUpdate()); - btnUpdate.getStyleClass().add("toggle-icon4"); - btnUpdate.setGraphic(SVG.UPDATE.createIcon(20)); FXUtils.installFastTooltip(btnUpdate, i18n("update.tooltip")); updateListener = any -> { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/profile/ProfileListItemSkin.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/profile/ProfileListItemSkin.java index 8246fd3246..53c4f72b6e 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/profile/ProfileListItemSkin.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/profile/ProfileListItemSkin.java @@ -60,11 +60,9 @@ public ProfileListItemSkin(ProfileListItem skinnable) { HBox right = new HBox(); right.setAlignment(Pos.CENTER_RIGHT); - JFXButton btnRemove = new JFXButton(); + JFXButton btnRemove = FXUtils.newToggleButton4(SVG.CLOSE, 14); btnRemove.setOnAction(e -> skinnable.remove()); - btnRemove.getStyleClass().add("toggle-icon4"); BorderPane.setAlignment(btnRemove, Pos.CENTER); - btnRemove.setGraphic(SVG.CLOSE.createIcon(14)); right.getChildren().add(btnRemove); root.setRight(right); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldInfoPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldInfoPage.java index d638f445ad..81fe9aab63 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldInfoPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/WorldInfoPage.java @@ -141,10 +141,9 @@ private void updateControls() { iconImageView.setImage(world.getIcon() == null ? FXUtils.newBuiltinImage("/assets/img/unknown_server.png") : world.getIcon()); } - JFXButton editIconButton = new JFXButton(); - JFXButton resetIconButton = new JFXButton(); + JFXButton editIconButton = FXUtils.newToggleButton4(SVG.EDIT, 20); + JFXButton resetIconButton = FXUtils.newToggleButton4(SVG.RESTORE, 20); { - editIconButton.setGraphic(SVG.EDIT.createIcon(20)); editIconButton.setDisable(isReadOnly); editIconButton.setOnAction(event -> Controllers.confirm( I18n.i18n("world.icon.change.tip"), @@ -154,13 +153,10 @@ private void updateControls() { null )); FXUtils.installFastTooltip(editIconButton, i18n("button.edit")); - editIconButton.getStyleClass().add("toggle-icon4"); - resetIconButton.setGraphic(SVG.RESTORE.createIcon(20)); resetIconButton.setDisable(isReadOnly); resetIconButton.setOnAction(event -> this.clearWorldIcon()); FXUtils.installFastTooltip(resetIconButton, i18n("button.reset")); - resetIconButton.getStyleClass().add("toggle-icon4"); } HBox hBox = new HBox(8); From 7413d7aad84ee524a81aef345ec21dad26b1c6a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=9E=E5=BA=90?= <109708109+CiiLu@users.noreply.github.com> Date: Tue, 24 Feb 2026 21:46:35 +0800 Subject: [PATCH 3/3] Update HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 7c34fbbd0b..b4e7a12bff 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 @@ -556,7 +556,7 @@ final class ModInfoListCell extends MDListCell { TwoLineListItem content = new TwoLineListItem(); JFXButton restoreButton = FXUtils.newToggleButton4(SVG.RESTORE); JFXButton infoButton = FXUtils.newToggleButton4(SVG.INFO); - JFXButton revealButton = FXUtils.newToggleButton4(SVG.FOLDER_OPEN); + JFXButton revealButton = FXUtils.newToggleButton4(SVG.FOLDER); BooleanProperty booleanProperty; Tooltip warningTooltip;