diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/popup/TranslucentPopupFactory.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/popup/TranslucentPopupFactory.java index 43a5b4d4e..375c5cbb3 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/popup/TranslucentPopupFactory.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/popup/TranslucentPopupFactory.java @@ -32,7 +32,7 @@ import javax.swing.SwingUtilities; import javax.swing.plaf.basic.BasicComboPopup; import org.jackhuang.hmcl.laf.scroll.BEScrollBarUI; import org.jackhuang.hmcl.laf.utils.Icon9Factory; -import org.jackhuang.hmcl.laf.WindowTranslucencyHelper; +import org.jackhuang.hmcl.laf.utils.WindowTranslucencyHelper; import org.jackhuang.hmcl.laf.widget.ImageBgPanel; /** @@ -183,10 +183,12 @@ public class TranslucentPopupFactory extends PopupFactory { //如果contents是BasicComboPopup或其子类那当前就应该是用于下拉框的弹出列表罗 boolean isComboBoxPopup = (contents instanceof BasicComboPopup); - //每像素透明 - WindowTranslucencyHelper.setWindowOpaque(w, false); - //内容组件半透明 - w.setOpacity(isTooltip ? 1.0f : isComboBoxPopup ? 0.95f : 0.95f);//0.85f : 0.95f);//0.8f : 0.95f); + if (WindowTranslucencyHelper.isTranslucencySupported()) { + //每像素透明 + WindowTranslucencyHelper.setWindowOpaque(w, false); + //内容组件半透明 + w.setOpacity(isTooltip ? 1.0f : isComboBoxPopup ? 0.95f : 0.95f);//0.85f : 0.95f);//0.8f : 0.95f); + } // component.getContentPane().add(contents, BorderLayout.CENTER); // contents.invalidate(); diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/titlepane/BERootPaneUI.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/titlepane/BERootPaneUI.java index ddaa963bc..5b20f4f58 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/titlepane/BERootPaneUI.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/titlepane/BERootPaneUI.java @@ -49,7 +49,7 @@ import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicRootPaneUI; import org.jackhuang.hmcl.laf.BeautyEyeLNFHelper; -import org.jackhuang.hmcl.laf.WindowTranslucencyHelper; +import org.jackhuang.hmcl.laf.utils.WindowTranslucencyHelper; /** * 窗体的UI实现. @@ -315,7 +315,7 @@ public class BERootPaneUI extends BasicRootPaneUI { //* 窗口透明了,那么如果你的程序其它地方需要窗口透明的话,自行.setWindowOpaque(..) //* 就行了,由开发者自先决定,此处就不承载过多的要求了 if (!BeautyEyeLNFHelper.isFrameBorderOpaque() - && window != null) { + && window != null && WindowTranslucencyHelper.isTranslucencySupported()) { //** 20111222 by jb2011,让窗口全透明(用以实现窗口的透明边框效果) // AWTUtilities.setWindowOpaque(window, false); // TODO BUG:1)目前可知,在jdk1.7.0_u6下,JDialog的半透明边框的透明度比原设计深一倍 diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/utils/WindowTranslucencyHelper.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/utils/WindowTranslucencyHelper.java index a3711dcf9..a40fa82e5 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/utils/WindowTranslucencyHelper.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/utils/WindowTranslucencyHelper.java @@ -9,7 +9,7 @@ * WindowTranslucencyHelper.java at 2015-2-1 20:25:40, original version by Jack Jiang. * You can contact author with jb2011@163.com. */ -package org.jackhuang.hmcl.laf; +package org.jackhuang.hmcl.laf.utils; import java.awt.Color; import java.awt.GraphicsDevice;