Java Swing问题

Java Swing问题,java,swing,resources,classloader,Java,Swing,Resources,Classloader,我有一块板,上面有卡片,我必须在上面找到匹配的。我有两个变量buttonA和buttonB来跟踪单击的方块 当它们相等时,我可以通过添加以下代码将它们从板上删除: cards[buttonA].setVisible(false); cards[buttonB].setVisible(false); 找到匹配项后,如何在所有按钮上放置相同的图像? 我尝试了以下方法,但它没有改变图像,只是在按钮上留下了相同的图像 cards[buttonA].setIcon(new ImageIcon("myPi

我有一块板,上面有卡片,我必须在上面找到匹配的。我有两个变量
buttonA
buttonB
来跟踪单击的方块

当它们相等时,我可以通过添加以下代码将它们从板上删除:

cards[buttonA].setVisible(false);
cards[buttonB].setVisible(false);
找到匹配项后,如何在所有按钮上放置相同的图像? 我尝试了以下方法,但它没有改变图像,只是在按钮上留下了相同的图像

cards[buttonA].setIcon(new ImageIcon("myPic.png");

您可能需要使用:

new ImageIcon(getClass().getResource("/path/to/myPic.png"));
其中此资源位于
类路径上。(请记住,如果使用IDE,您需要确保将PNG资源复制到输出目录。例如,在IDEA中,这是在编译器设置菜单中实现的)


编辑:我永远记不起路径是否以
/
开头。

如果您希望在按钮之间共享图像图标(而不是每次加载它),则可以引用图像图标。对我来说,你的代码应该有效。也许您可以删除当前图标(使用setIcon(null))然后设置它。

如果您希望它在类路径中是绝对的,则它以斜杠开始;如果您希望它相对于类是绝对的,则它不以斜杠开始。我尝试过,但没有成功。。。我注意到它使图像向下移动了一点。。。然后一个常见的问题是(如果您使用的是IDE),png文件没有被复制到您的输出(或类或bin)区域。i、 它只在源目录中。这可能是一个IDE构建设置-在IDE中,它位于“编译器”设置下,您不需要先删除另一个图标。Tony的PNG文件显然不在他的类路径上