我想知道如何制作另一个JPanel中的背景渐变。虽然互联网上有很多文章,但它们都演示了如何覆盖JPanel的paintComponent()方法,而不是如何处理其中的JPanel。
我使用Netbeans IDE。我创建了一个新的JPanel类并重写了它的paintComponent()方法。我在其上还有另一个jpanel(拖放到父JPanel上)。我想使它的背景渐变。
我使用Netbeans IDE。我创建了一个新的JPanel类并重写了它的paintComponent()方法。我在其上还有另一个jpanel(拖放到父JPanel上)。我想使它的背景渐变。
这是我为父面板尝试的方法。它起作用了。如何为子JPanel覆盖它呢?
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
Color color1 = getBackground();
Color color2 = color1.darker();
int w = getWidth();
int h = getHeight();
GradientPaint gp = new GradientPaint(
0, 0, color1,
0, h, color2);
g2d.setPaint(gp);
g2d.fillRect(0, 0, w, h);
}
JPanel
的类中使用这段代码。据我所知,父组件无法更改其子组件的绘制方式。因此,为你的子组件扩展JPanel
并将此处的代码放入子面板中。 - BrianJComponent
зұ»йғҪжңүиҝҷдёӘpaintComponent
ж–№жі•пјҢжүҖд»ҘжҳҜзҡ„гҖӮ - BriansetOpaque(false)
将它们的背景设置为透明,这样父组件绘制的内容仍然可见于子组件内部。 - josefx