10

喂,..

如何设置背景透明并“删除”关闭操作(标记为红色)?我只想出示卡片:-)

替代文字

谢谢..!

4

3 回答 3

17

虽然 UNDECORATED JFrame 透明度没有问题(myJFrame.setBackground (new Color (0,0,0,0)); 已经足够漂亮了),但 JDialog 也一样不起作用。

然而,我发现以下序列非常适合 JDialog:

myJDialog.getRootPane ().setOpaque (false);
myJDialog.getContentPane ().setBackground (new Color (0, 0, 0, 0));
myJDialog.setBackground (new Color (0, 0, 0, 0));

A 也仍然存在,但这是我的私人谦虚建议,应针对 UnsupportedOperationException 和 IllegalComponentStateException 尝试对 Window 扩展程序(例如 JFrame、JDialog)的所有 setBackground 调用。

于 2012-03-15T09:54:17.143 回答
12

yourDialog.setUndecorated(true)应该做标题栏的伎俩。

使框架透明。您必须使用它在根面板yourDialog.getRootPane().setOpaque(false)上工作。

于 2011-01-07T22:55:57.493 回答
2

我按照文章中的说明进行操作,最终效果很好,而且一点也不难。:) 我现在有我的半透明 SplashImage ans About 屏幕,它显示 PNG 图像并尊重其(复杂)透明度。太棒了。请注意,在 JDK 7 中继续执行的方法会有所改变。

请注意关键字之间的区别。 http://download.oracle.com/javase/tutorial/uiswing/misc/trans_shape_windows.html#6u10

如果

yourDialog.setUndecorated(true);
yourDialog.getRootPane().setOpaque(false);

把戏奏效了,但对我没有用。也许我做错了什么。

我还注意到使用 setContentPane(Component); 很重要。而不是 getContentPane.add(Component);

我很高兴它现在可以工作了!:)

于 2011-06-22T02:12:23.547 回答