2010-05-29 82 views
2

我有幾個JLabel的面板所有的標籤圖標,我想改變他們所有的圖標,更改面板

String path = System.getProperty("user.dir"); 

for (int x=0;x< 21;x++) { 
    javax.swing.JLabel lab = boardPanel.getComponent(x).; 
    lab.setIcon(new ImageIcon(path + "\\image\\blank.jpg")); 
} 

它給了我不兼容類型的錯誤,所有的boardPanel裏面是一個JLabel , 即時通訊使用netbeans 6.8。

回答

4

getComponent()將返回一個Component。您需要投射到JLabel

javax.swing.JLabel lab = (javax.swing.JLabel)boardPanel.getComponent(x); 

爲了安全起見,您應該在鑄造前檢查預期類型。畢竟,在某個階段,您可能在JLabel之外有類型。

Component c = boardPanel.getComponent(x); 
if (c instanceof JLabel) { 
    JLabel lab = (JLabel)c; 
    // etc. 
} 
+0

哇,那很快,謝謝你的建議,它的工作原理! – Josh 2010-05-29 10:07:51

+1

沒問題。這就是我們在這裏:-) – 2010-05-29 10:09:33

+0

@Josh接受答案,如果它的工作如何,否則將被列出未答覆。 – stacker 2010-05-29 10:26:37