我正在尝试使用swingx的 ShadowRenderer 为面板创建阴影。这是我到目前为止所做的:
在面板构造函数中创建一次阴影渲染器。
public CustomPanel() { super(); renderer = new ShadowRenderer(20, 0.5f, Color.RED); }
每次调整面板大小时,我都会重新计算新的阴影。
@Override public void setBounds(int x, int y, int width, int height) { super.setBounds(x, y, width, height); shadow = renderer.createShadow(GraphicsUtilities.createCompatibleTranslucentImage(width, height)); }
然后我重写
paintComponent
面板的方法来绘制生成的图像:protected void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g.create(); g2.drawImage(shadow, 0, 0, null); //super.paintComponent(g); }
但shadow
图像从未显示。为什么?我读了这篇文章,除了我的代码来绘制一种由阴影渲染器生成的“阴影”图像。