[英]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()。 我的問題是,當我設置圖像時,我的所有組件都被隱藏了。
兩種選擇:
將組件添加到 JLabel。 然后組件將繪制在圖像的頂部。 這種方法的限制是組件必須適合圖像,因為圖像總是以其實際大小繪制。
通過覆蓋面板的paintComponent(...)
方法,然后調用Grapics.drawImage(...)
方法,在 JPanel 上對圖像進行自定義繪制。 然后將您的組件添加到面板。 有關提供此支持的類,請參閱背景面板。 這提供了更大的靈活性,因為您可以縮放圖像以填充面板。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.