this.setBackground(new Color(255, 212, 100, opacity));
摇摆不支持透明背景。
Swing希望组件为:
- 不透明-表示组件将在进行自定义绘画之前首先用不透明的颜色重新绘制整个背景,或者
- 完全透明-在这种情况下,Swing将先绘制第一个不透明父级组件的背景,然后再进行自定义绘制。
该
setOpaque(...)方法用于控制组件的不透明属性。
在任何一种情况下,这都可以确保除去所有绘画瑕疵,并且可以正确完成自定义绘画。
如果要使用透明度,则需要对自己进行自定义绘制以确保清除背景。
面板的自定义绘画为:
JPanel panel = new JPanel(){ protected void paintComponent(Graphics g) { g.setColor( getBackground() ); g.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); }};panel.setOpaque(false); // background of parent will be painted first
使用透明性的每个组件都需要类似的代码。
或者,您可以签出自定义类的Background With
Transparency,该自定义类可以在将为您完成上述工作的任何组件上使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)