1
我使用java工作,我想制作一个半透明的窗口(如80%alpha的黑色)。我的代码的基础是那些在以下帖子:How to make a transparent JFrame but keep everything else the same?如何在Java swing中创建transluent窗口?
问题是,当我运行我的程序,窗口是半透明的,但你可能会看到下面的图片,背景颜色(洋红色)只出现在文字,而不是白纸。 更糟糕的是,当我选择透明度为Color(0,0,0,125)
的黑色作为绘图颜色时,屏幕上不显示任何内容。
这是我到目前为止有:
public class DssWindow extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 2455172975892566000L;
/**
*
*/
public DssWindow()
{
super("My frame");
setUndecorated(true);
setBackground(new Color(0,0,0,0));
setAlwaysOnTop(true);
JPanel contentPane = new JPanel()
{
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(!(g instanceof Graphics2D))
{
return;
}
Graphics2D gr = (Graphics2D)g.create();
gr.setColor(new Color(255,0,255,200));
gr.fillRect(0, 0, getWidth(), getHeight());
}
};
contentPane.setOpaque(false);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
contentPane.setPreferredSize(new Dimension(screen.width,screen.height));
setContentPane(contentPane);
pack();
}
}
难道有人知道/有什么问题的线索? 我正在Linux上工作(可能这是答案的一部分)。
谢谢。
可能的重复[如何使一个透明的JFrame,但保持其他一切?](http://stackoverflow.com/questions/14927980/how-to-make-a-transparent-jframe-but-keep-一切 - 其他 - 相同) –
这不是重复的。我用这个帖子来制作我的节目。这是我的另一个问题。 – dooxe