1

我想在我的 JPanel 上有图像,并且在我的 JPanel 上还有 JSlider 和 JRadioButton 等组件。如您所见,我从 JPanel 派生了一个类并重写了方法 paintComponent。这是在 JPanel 上显示图像的好方法。

public void paintComponent(Graphics g)
{
    /*create image icon to get image*/
    ImageIcon imageicon = new ImageIcon(imageFile); //getClass().getResource(imageFile)
    Image image = imageicon.getImage();

    /*Draw image on the panel*/
    super.paintComponent(g);

    if (image != null)
        g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}

但是我有一些问题。当我在 ImagePanel 上添加 JSlider、JRadioButton 或其他 JPanel 等组件时;该组件的背景保持默认,而不是背景图片。我不知道如何将此图像设置为此组件的背景。请指导我。

问候

4

3 回答 3

1

您必须将其他组件的 opaque 属性设置为 false。

jRadioButton.setOpaque(false);

例如 :

带有 RadioButton 的 ImagePanel。

于 2011-02-01T07:44:23.790 回答
1
jRadioButton.setOpaque(false);

适用于许多外观,但如果您希望它与 Nimbus 一起使用,您还应该将背景颜色设置为透明:

jRadioButton.setBackground(new Color(0,0,0,0));

有关更多详细信息,请参阅此问题

于 2011-02-01T17:14:03.770 回答
0

对所有其他组件没有setOpaque(false)帮助吗?

于 2011-02-01T07:39:48.257 回答