JPanel 图像和组件

发布于 2024-10-14 23:56:35 字数 650 浏览 2 评论 0原文

我希望 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、JRRadioButton 或其他 JPanel 等组件时;该组件的背景保持默认状态,而不是背景图片。我不知道如何将此图像设置为该组件的背景。 请指导我。

问候

I would like to have image on my JPanels an also have components such as JSlider and JRadioButton on my JPanel. I derived a class from JPanel and overrided method paintComponent as you see. This is a good way to have image on 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);
}

However I have some problems. When I add components such as JSlider, JRadioButton or another JPanel on my ImagePanel; this component's background remains as default and not background picture. I don't know how to set this image as background of this components.
please guide me.

regards

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

毁虫ゝ 2024-10-21 23:56:35

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

jRadioButton.setOpaque(false);

例如:

ImagePanel with RadioButton on it.

you must set opaque properties of other component to false.

jRadioButton.setOpaque(false);

for example :

ImagePanel with RadioButton on it.

南风起 2024-10-21 23:56:35
jRadioButton.setOpaque(false);

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

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

请参阅 此问题了解更多详细信息。

jRadioButton.setOpaque(false);

Will work for many look-and-feels, but if you want it to work with Nimbus you should also set the background color to be transparent:

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

See this question for more details.

缱绻入梦 2024-10-21 23:56:35

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

Doesn't setOpaque(false) for all the other components help?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文