首页 > 解决方案 > 使用 JLabel 设置背景图像的问题

问题描述

我试图制作迷你游戏,这个游戏可以选择地图。不同的选择,选择不同的地图。每个选择都有自己的地图(背景图片)。对于背景图像,我使用 JLabel 和方法:setIcon()。我的问题是,当我设置图像时,我的所有组件都被隐藏了。这是图片:http: //prntscr.com/qi5m8a(您可以看到只能看到图像)。对于地图选择我使用这种结构,这里是图片:http ://prntscr.com/qi5n4c 有这样的事件播放按钮:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    if(mapOneRadioButton.isSelected())
    {


        this.dispose();
        GameWindow game = new GameWindow();

        game.setVisible(true);
        game.setLocationRelativeTo(null);
        backgroundLabelGameWin.setIcon(new javax.swing.ImageIcon(getClass().getResource("/main/earthProject.gif")));

    }else if(mapTwoRadioButton.isSelected())
    {

    }else if(mapTreeRadioButton.isSelected())
    {

    }else if(mapFourRadioButton.isSelected())
    {

    }else if(mapFiveRadioButton.isSelected())
    {

    } 
}  

我使用 JPanel,在其中添加 JLabel 作为背景图像,并使用 JLayeredPanel 作为其余组件。

我的问题/问题是,如何在不破坏框架顺序的情况下更改/设置图像?我的意思是,我想在背景中更改/设置图像,以便可以看到我的所有组件。请帮助我,我不知道如何解决这个问题。

标签: javaimageswingbackgroundjlabel

解决方案


如果您更改 JPanel 的背景而不是使用 JLabel 进行图像处理会更好。您不能直接更改 JPanel 的背景。但是您可以参考以下链接来执行此操作 http://www.java2s.com/Code/Java/Swing-JFC/Panelwithbackgroundimage.htm


推荐阅读