2010-05-29 81 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