我想在我的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等组件时;此组件的背景仍为默认值,而非背景图片。我不知道如何将此图像设置为此组件的背景。 请指导我。
问候
答案 0 :(得分:1)
您必须将其他组件的不透明属性设置为false。
jRadioButton.setOpaque(false);
例如:
答案 1 :(得分:1)
jRadioButton.setOpaque(false);
适用于许多外观,但如果您希望它与Nimbus一起使用,您还应将背景颜色设置为透明:
jRadioButton.setBackground(new Color(0,0,0,0));
有关详细信息,请参阅this question。
答案 2 :(得分:0)
对于所有其他组件,setOpaque(false)
是否有帮助?