rog*_*ack 7 java swing jframe translucency java-7
与此问题相关: Java Tutorials半透明窗口示例是否给那些使用jdk7的人带来麻烦?
使用jdk1.6.0_26我似乎能够将半透明应用于JFrame,但jre7不是这样:
NativeException:java.awt.IllegalComponentStateException:框架已装饰
ex(jruby脚本java,工作jdk1.6但不是jdk7):
require 'java' class MouseDraw def self.go java_import 'javax.swing.JFrame' java_import 'com.sun.awt.AWTUtilities' f = JFrame.new AWTUtilities.set_window_opacity(f, 0.5) f.set_size 200,200 f.show end end MouseDraw.go
所以我的问题是"是否有可能在jdk7中有一个半透明的标题栏"(我想要一个透明窗口,我正在创建可拖动/可调整大小)
引入Java 7 Window.setOpacity()
来做非官方类AWTUtilities
在Java 6中所做的事情.
不幸的是,它记录不适用于装饰窗口:
必须满足以下条件才能将不透明度值设置为小于
1.0f
:
- 该
TRANSLUCENT
半透明必须由底层系统的支持- 窗户必须是未修饰的(见
Frame.setUndecorated(boolean)
和Dialog.setUndecorated(boolean)
)- 窗口不得处于全屏模式(请参阅
GraphicsDevice.setFullScreenWindow(Window)
)
(强调我的)