簡體   English   中英

使用 JLabel 設置背景圖像的問題

[英]Problem with setting background image using 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 作為其余組件。

我的問題/問題是,如何更改/設置圖像而不破壞框架中的順序? 我的意思是,我想在背景中更改/設置圖像,以便可以看到我的所有組件。 請幫幫我,我不知道如何解決這個問題。

如果您更改 JPanel 的背景而不是使用 JLabel 作為圖像會更好。 您不能直接更改 JPanel 的背景。 但是你可以參考以下鏈接來做http://www.java2s.com/Code/Java/Swing-JFC/Panelwithbackgroundimage.htm

對於背景圖像,我使用 JLabel 和方法:setIcon()。 我的問題是,當我設置圖像時,我的所有組件都被隱藏了。

兩種選擇:

  1. 將組件添加到 JLabel。 然后組件將繪制在圖像的頂部。 這種方法的限制是組件必須適合圖像,因為圖像總是以其實際大小繪制。

  2. 通過覆蓋面板的paintComponent(...)方法,然后調用Grapics.drawImage(...)方法,在 JPanel 上對圖像進行自定義繪制。 然后將您的組件添加到面板。 有關提供此支持的類,請參閱背景面板 這提供了更大的靈活性,因為您可以縮放圖像以填充面板。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM