java - 更改面板中的所有标签图标

标签 java swing

我有一个带有几个 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。

最佳答案

getComponent() 将返回一个组件。您需要转换为 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.
}

关于java - 更改面板中的所有标签图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2934595/

相关文章:

java - Spring UserDetailsS​​ervice 不是 google-apps-engine 中的可序列化 session 属性

java - 在嵌套面板中监听击键

java - JTree - 无法转换为 javax.swing.tree.MutableTreeNode

java - 使用时从 ArrayList 中删除元素

java - 带有更新图像的 JLabel 刷新图标

java - 在android上下载多个非http下载的最佳方式是什么

java - 在Java中将字符转换为整数

Java:动态连接未指定数量的二维数组

java - 使用 gradle 时找不到 Protobuf 生成的类

java - 通过鼠标单击进行选择排序对行进行排序