From fffded163e6309c41ee14b6bc124d6309169b536 Mon Sep 17 00:00:00 2001 From: Yvan Date: Tue, 27 Oct 2020 16:34:13 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-41503=20=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/start/common/SplashPane.java | 3 -- .../start/common/SplashPane4WinAndJDK11.java | 33 +++++++++++++------ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/start/common/SplashPane.java b/designer-realize/src/main/java/com/fr/start/common/SplashPane.java index 49a957a21c..726bdaba44 100644 --- a/designer-realize/src/main/java/com/fr/start/common/SplashPane.java +++ b/designer-realize/src/main/java/com/fr/start/common/SplashPane.java @@ -125,7 +125,4 @@ public class SplashPane extends JPanel { repaint(MODULE_INFO_X, THANK_INFO_Y - FONT_SIZE, MODULE_INFO_WIDTH, MODULE_INFO_HEIGHT); } - protected void paintJComponent(Graphics g) { - super.paintComponent(g); - } } diff --git a/designer-realize/src/main/java/com/fr/start/common/SplashPane4WinAndJDK11.java b/designer-realize/src/main/java/com/fr/start/common/SplashPane4WinAndJDK11.java index dae1808844..df91fcf4b7 100644 --- a/designer-realize/src/main/java/com/fr/start/common/SplashPane4WinAndJDK11.java +++ b/designer-realize/src/main/java/com/fr/start/common/SplashPane4WinAndJDK11.java @@ -3,6 +3,7 @@ package com.fr.start.common; import com.bulenkov.iconloader.IconLoader; import com.fr.base.BaseUtils; import com.fr.design.locale.impl.SplashMark; +import com.fr.general.IOUtils; import com.fr.general.locale.LocaleCenter; import javax.swing.Icon; @@ -10,7 +11,6 @@ import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; -import java.io.File; /** * @author Yvan @@ -21,25 +21,37 @@ public class SplashPane4WinAndJDK11 extends SplashPane{ /** * 启动画面图片路径 */ - private String imagePath; + private final String imagePath; + + /** + * 启动画面图片是否使用了两倍图 + */ + private boolean isDouble = false; public SplashPane4WinAndJDK11() { this.imagePath = getSplashPath4WinAndJdk11(); } private String getSplashPath4WinAndJdk11() { - String path = "/com/fr/design/images/splash_10@2x.png"; - String filePath = this.getClass().getResource("/").getPath(); - // 某些定制jar里面没有两倍图,判断一下,如果文件不存在,就返回一倍图的path - if (new File(filePath + path).exists()) { - return path; + String path = (String) LocaleCenter.getMark(SplashMark.class).getValue(); + if (path.contains("splash_10.png")) { + // 为图片加上"@2x" + String pathOfDouble = path.replace("splash_10.png", "splash_10@2x.png"); + // 某些定制jar里面没有两倍图,判断一下,如果文件不存在,就返回一倍图的path + if (IOUtils.readResource(pathOfDouble) != null) { + this.isDouble = true; + return pathOfDouble; + } } - return (String) LocaleCenter.getMark(SplashMark.class).getValue(); + return path; } @Override protected void paintComponent(Graphics g) { - super.paintJComponent(g); + if (isDouble) { + super.paintComponent(g); + return; + } BufferedImage image = BaseUtils.readImage(imagePath); Graphics2D newG = (Graphics2D)g.create(0, 0, image.getWidth(), image.getHeight()); newG.scale(0.5D, 0.5D); @@ -53,6 +65,7 @@ public class SplashPane4WinAndJDK11 extends SplashPane{ @Override Dimension getSplashDimension() { Icon icon = IconLoader.getIcon(imagePath); - return new Dimension(icon.getIconWidth() / 2, icon.getIconHeight() / 2); + return isDouble ? new Dimension(icon.getIconWidth() / 2, icon.getIconHeight() / 2) : + new Dimension(icon.getIconWidth(), icon.getIconHeight()); } }