JPanel图像和组件

时间:2011-02-01 07:18:46

标签: java swing jpanel jcomponent imageicon

我想在我的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等组件时;此组件的背景仍为默认值,而非背景图片。我不知道如何将此图像设置为此组件的背景。 请指导我。

问候

3 个答案:

答案 0 :(得分:1)

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

jRadioButton.setOpaque(false);

例如:

ImagePanel with RadioButton on it.

答案 1 :(得分:1)

jRadioButton.setOpaque(false);

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

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

有关详细信息,请参阅this question

答案 2 :(得分:0)

对于所有其他组件,setOpaque(false)是否有帮助?