想要绘制对话框的渐变背景
答案 0 :(得分:2)
不使用根窗格或分层窗格。
请勿在JFrame或JDialog上覆盖paint()。
如果要对背景进行自定义绘制,则可以重写JPanel的paintComponent(...)方法。然后,将该面板设置为对话框的内容窗格。
请阅读Custom Painting的Swing教程中的部分,以获取入门的实用示例。
此外,Swing不正确支持透明背景。
绘制透明背景的基本逻辑是:
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
panel.setBackground( new Color(255, 0, 0, 20) );
frame.add(panel);
查看Background With Transparency了解更多信息。
因此,首先使用非透明颜色在自定义面板上进行渐变绘制。一旦了解了进行自定义绘画的正确方法,便可以担心透明度。