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