我正在尝试创建一个透明的JFrame
,即内部完全透明的窗口,而边框是带有关闭按钮的顶部栏,最小化等可见。我尝试创建新的Jpanel
,然后使用panel.setOpaque(false);
,但它没有帮助。
我对摇摆和Java GUI非常陌生,并希望得到一些帮助。
答案 0 :(得分:0)
你想做的事情是可能的,但不是你想象的那样......
如果你想要标准操作系统的窗口装饰(即窗口边框,关闭,最大化,最小化按钮),那是不可能的。透明度不能应用于“装饰”框架。
但是,这可以通过使用Java的默认窗口装饰来完成。试试下面的代码:
public static void main(String[] args) {
JPanel panel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
g.setColor(Color.RED);
g.drawRect(32,32,32,32);
}
};
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame f = new JFrame();
f.add(panel);
f.setSize(256,256);
// The following two statements cause the window-transparency:
f.setUndecorated(true);
f.setBackground(new Color(0,255,0,0));
f.setVisible(true);
}
我个人没有发现Java窗口装饰看起来很漂亮...除此之外,特定于操作系统的功能(例如Window的Snap功能通过将窗口移动到屏幕的一侧来“半最大化”窗口)不工作...对我而言,这是一个交易破坏者,但根据您的需要,它可能是一个可接受的解决方案。 :)