Browse Source

REPORT-5093 优化开启画面锯齿

master
vito 7 years ago
parent
commit
29335470e6
  1. 40
      designer_base/src/com/fr/start/SplashWindow.java

40
designer_base/src/com/fr/start/SplashWindow.java

@ -1,46 +1,40 @@
package com.fr.start; package com.fr.start;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.stable.OperatingSystem; import com.fr.stable.OperatingSystem;
import com.sun.awt.AWTUtilities; import com.sun.awt.AWTUtilities;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Image;
public class SplashWindow extends JFrame { public class SplashWindow extends JFrame {
private SplashPane splash = null; private SplashPane splash = null;
@SuppressWarnings("LeakingThisInConstructor") @SuppressWarnings("LeakingThisInConstructor")
public SplashWindow(SplashPane splashPane) { public SplashWindow(SplashPane splashPane) {
// alex:必须设置这个属性为true,才可以用透明背景 // alex:必须设置这个属性为true,才可以用透明背景
System.setProperty("sun.java2d.noddraw", "true"); System.setProperty("sun.java2d.noddraw", "true");
this.setIconImage(BaseUtils.readImage("/com/fr/base/images/oem/logo.png")); this.setIconImage(BaseUtils.readImage("/com/fr/base/images/oem/logo.png"));
JPanel defaultPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
this.setContentPane(defaultPane);
defaultPane.setBackground(new Color(0, 0, 0, 0));
//slash pane //slash pane
this.splash = splashPane; this.splash = splashPane;
splash.setBackground(null);
Image image = splash.getSplashImage();
ImageIcon imageIcon = new ImageIcon(image);
if (splash != null) { if (splash != null) {
defaultPane.add(splash, BorderLayout.CENTER); splash.setBackground(null);
Image image = splash.getSplashImage();
ImageIcon imageIcon = new ImageIcon(image);
this.setContentPane(splash);
this.setSize(new Dimension(imageIcon.getIconWidth(), imageIcon.getIconHeight())); this.setSize(new Dimension(imageIcon.getIconWidth(), imageIcon.getIconHeight()));
} else { } else {
defaultPane.add(new UILabel("Error, please contract: support@finereport.com"), BorderLayout.CENTER); this.setContentPane(new UILabel("Error, please contract: support@finereport.com"));
this.setSize(new Dimension(480, 320)); this.setSize(new Dimension(480, 320));
} }
@ -50,7 +44,7 @@ public class SplashWindow extends JFrame {
//使窗体背景透明 //使窗体背景透明
if (OperatingSystem.isWindows()) { if (OperatingSystem.isWindows()) {
this.setBackground(new Color(0,0,0,0)); this.setBackground(new Color(0, 0, 0, 0));
} }
GUICoreUtils.centerWindow(this); GUICoreUtils.centerWindow(this);
@ -62,8 +56,8 @@ public class SplashWindow extends JFrame {
*/ */
public void dispose() { public void dispose() {
super.dispose(); super.dispose();
if(this.splash != null){ if (this.splash != null) {
this.splash.releaseTimer(); this.splash.releaseTimer();
} }
} }

Loading…
Cancel
Save