From d28151d50e9a7e1dbb3465d039ccdaab988ab345 Mon Sep 17 00:00:00 2001 From: vito Date: Wed, 10 Jan 2024 10:13:47 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-99485=20windows=E4=B8=8B=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E6=81=A2=E5=A4=8D=E5=8E=9F=E7=94=9F=E7=AA=97=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fine/theme/light/ui/laf/FineLaf.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/designer-base/src/main/java/com/fine/theme/light/ui/laf/FineLaf.java b/designer-base/src/main/java/com/fine/theme/light/ui/laf/FineLaf.java index 10d6456488..fa29de7466 100644 --- a/designer-base/src/main/java/com/fine/theme/light/ui/laf/FineLaf.java +++ b/designer-base/src/main/java/com/fine/theme/light/ui/laf/FineLaf.java @@ -1,6 +1,7 @@ package com.fine.theme.light.ui.laf; import com.formdev.flatlaf.FlatLaf; +import com.formdev.flatlaf.util.SystemInfo; import javax.swing.PopupFactory; @@ -31,8 +32,19 @@ public abstract class FineLaf extends FlatLaf { @Override public void initialize() { super.initialize(); + resetWindowDecorations(); // flat默认使用系统弹窗,3.3 版本之前无法实现圆角弹窗。 // popup弹窗不使用flat提供的工具,使用swing原生自带的 PopupFactory.setSharedInstance(new PopupFactory()); } + + /** + * 在win10和win11下重置窗口装饰,恢复系统原生 + */ + private static void resetWindowDecorations() { + if (SystemInfo.isWindows_10_orLater) { + System.setProperty("flatlaf.useWindowDecorations", "false"); + System.setProperty("flatlaf.menuBarEmbedded", "false"); + } + } }