From bd45127a8c666f7470a761d8775a69a08b944627 Mon Sep 17 00:00:00 2001 From: wangchunxiang <526328077@qq.com> Date: Tue, 14 Oct 2025 16:33:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(ui):=20=E6=B7=BB=E5=8A=A0=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E5=9B=BE=E6=A0=87=E9=85=8D=E7=BD=AE=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=BC=B9=E7=AA=97=E5=9B=BE=E6=A0=87=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将图标加载逻辑提取到 GlobalConfig 中统一管理,并在登录失败弹窗及 Cookie更新完成弹窗中设置应用图标。同时修复了部分弹窗文本描述不一致的问题。 --- .../com/fantaibao/DesktopApplication.java | 4 +-- .../com/fantaibao/config/GlobalConfig.java | 26 +++++++++++++++++++ .../java/com/fantaibao/page/LoginView.java | 11 ++++++++ .../service/AbstractFtbCrawlNetBase.java | 7 +++-- 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/fantaibao/DesktopApplication.java b/src/main/java/com/fantaibao/DesktopApplication.java index 92f7a51..7ae8320 100644 --- a/src/main/java/com/fantaibao/DesktopApplication.java +++ b/src/main/java/com/fantaibao/DesktopApplication.java @@ -1,5 +1,6 @@ package com.fantaibao; +import com.fantaibao.config.GlobalConfig; import com.fantaibao.page.LoginView; import javafx.application.Application; import javafx.application.Platform; @@ -34,8 +35,7 @@ public class DesktopApplication extends Application { // 添加窗口关闭事件监听器 primaryStage.setOnCloseRequest(this::handleCloseEvent); // 添加多个尺寸的图标 - primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/icon16.png"))); - primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/icon32.png"))); + GlobalConfig.addIcon(primaryStage); // 直接启动登录界面 new LoginView(primaryStage); } diff --git a/src/main/java/com/fantaibao/config/GlobalConfig.java b/src/main/java/com/fantaibao/config/GlobalConfig.java index c34ef4a..1a982fa 100644 --- a/src/main/java/com/fantaibao/config/GlobalConfig.java +++ b/src/main/java/com/fantaibao/config/GlobalConfig.java @@ -1,5 +1,12 @@ package com.fantaibao.config; +import javafx.scene.image.Image; +import javafx.stage.Stage; +import org.springframework.util.ResourceUtils; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; + public class GlobalConfig { /** * 基础网络地址 @@ -46,4 +53,23 @@ public class GlobalConfig { */ public static String dyLoginPage; + + + public static final Image icon16; + public static final Image icon32; + + static { + try { + icon16 = new Image(new FileInputStream(ResourceUtils.getFile("classpath:icon16.png"))); + icon32 = new Image(new FileInputStream(ResourceUtils.getFile("classpath:icon32.png"))); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + } + + public static void addIcon(Stage stage) { + stage.getIcons().add(GlobalConfig.icon16); + stage.getIcons().add(GlobalConfig.icon32); + } + } diff --git a/src/main/java/com/fantaibao/page/LoginView.java b/src/main/java/com/fantaibao/page/LoginView.java index e115273..9567946 100644 --- a/src/main/java/com/fantaibao/page/LoginView.java +++ b/src/main/java/com/fantaibao/page/LoginView.java @@ -16,8 +16,10 @@ import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.ProgressIndicator; import javafx.scene.control.TextField; +import javafx.scene.image.Image; import javafx.scene.layout.VBox; import javafx.stage.Stage; +import java.io.InputStream; public class LoginView { @@ -94,6 +96,12 @@ public class LoginView { alert.setTitle("登录失败"); alert.setHeaderText(null); alert.setContentText(jsonResultObject.getString("msg")); + // 设置弹窗图标 + Stage alertStage = (Stage) alert.getDialogPane().getScene().getWindow(); + InputStream iconStream = getClass().getResourceAsStream("/icon16.png"); + if (iconStream != null) { + alertStage.getIcons().add(new Image(iconStream)); + } alert.showAndWait(); return; } @@ -119,6 +127,9 @@ public class LoginView { alert.setTitle("登录失败"); alert.setHeaderText(null); alert.setContentText("登录过程中发生错误: " + ex.getMessage()); + // 设置弹窗图标 + Stage alertStage = (Stage) alert.getDialogPane().getScene().getWindow(); + GlobalConfig.addIcon(alertStage); alert.showAndWait(); }); } diff --git a/src/main/java/com/fantaibao/service/AbstractFtbCrawlNetBase.java b/src/main/java/com/fantaibao/service/AbstractFtbCrawlNetBase.java index 3607ebd..88163ab 100644 --- a/src/main/java/com/fantaibao/service/AbstractFtbCrawlNetBase.java +++ b/src/main/java/com/fantaibao/service/AbstractFtbCrawlNetBase.java @@ -10,6 +10,7 @@ import com.microsoft.playwright.Request; import javafx.application.Platform; import javafx.scene.control.Alert; import javafx.scene.control.ButtonType; +import javafx.stage.Stage; import lombok.extern.slf4j.Slf4j; import java.util.Optional; @@ -60,8 +61,10 @@ public abstract class AbstractFtbCrawlNetBase { Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Cookie更新完成"); alert.setHeaderText(null); - alert.setContentText(platformName+"Cookie已更新完成,请点击\"我已知晓\"关闭页面"); - + alert.setContentText(platformName+"Cookie已更新完成,请点击\"我已知晓\"关闭"); + // 设置弹窗图标 + Stage alertStage = (Stage) alert.getDialogPane().getScene().getWindow(); + GlobalConfig.addIcon(alertStage); // 添加自定义按钮 ButtonType acknowledgeButton = new ButtonType("我已知晓"); alert.getButtonTypes().setAll(acknowledgeButton);