2014-07-09 61 views
0

以前,我是使用下面的語句,用於設置幀使用JLabel設置幀的背景圖像的正確方法是什麼?

JLabel backImage = new JLabel(new ImageIcon("C\\users\\BSK\\Desktop\\win.png")); 

的背景和它工作正常和產生以下結果。(編碼按鈕未示出)enter image description here

但是,當我創建了一個名爲Resource新包裝,並把該圖像,並使用下面的語句

JLabel backImage=new JLabel(); 
ImageIcon img; 
img = new ImageIcon(getClass().getResource("/Resource/win.png")); 
backImage.setIcon(img); 

我得到以下結果: -

enter image description here

正如你可以看到我的拼圖方塊熄滅scope.So的就是這兩種方法之間的區別?

EDIT佈局的JLabel backImage使用是邊界Layout.i我首先設定的JFrame作爲JLabel的是backImage的內容窗格,並且在GridBagLayout的一個單獨的潘內爾添加的按鈕,然後加入潘內爾到contentPane該框架再次是JLabel backImage

+0

可以是相對路徑問題,試試:'img = new ImageIcon(getClass()。getResource(「Resource/win.png」));' – Pphoenix

+1

標籤是如何添加到框架的?什麼佈局經理正在使用?考慮提供一個[可運行的示例](https://stackoverflow.com/help/mcve),它可以證明你的問題,這將減少猜測工作併產生更好的響應 – MadProgrammer

+1

@Pphoenix圖像在那裏,它只是在右邊:P – MadProgrammer

回答

1

ImageIcon的位置取決於框架內容窗格的佈局管理器,默認爲BorderLayout。或者,在按鈕面板中覆蓋paintComponent()。在提供的圖形上下文中調用drawImage()以使圖像呈現所需的位置和大小。將按鈕面板添加到封閉框架的內容窗格中。

相關問題