【发布时间】:2013-07-06 07:58:23
【问题描述】:
我发誓我到处都看过,并且已经搜索了几个小时。我已将actionListeners 添加到所有按钮,当单击一个时,我想给它一个带有setIcon( image ) 的图像,如下所示:
public void actionPerformed(ActionEvent e) {
if(e.getSource() == button) {
ImageIcon icon = new ImageIcon(getClass().getResource("/Images/" +letter+ ".PNG"));
button.setIcon(icon );
}
1) 我知道它正在检索图像,因为button.getIcon() 给了我类似file:/Users/path/to/Images/X.PNG 的信息。我在设置图标之前和之后检查了它是否为空,之后它不为空。
2) 除了getClass()... 和ImageIO.read... 和BufferedImage 之外,我还尝试了setIcon 的其他变体。
3) 我不想添加更多代码,因为我什至不确定还有什么相关的。我希望你的一些猜测
4) 在 Eclipse 中,我将输出文件夹更改为 src(而不是 bin),这就是我的 Images 文件夹所在的位置。
【问题讨论】:
-
设置前检查对象图标是否为空。如果为null,则图标的路径无效
-
它不是空的,它绝对是一个有效的路径。 button.getIcon() 不会显示它为 null 或无效路径的任何内容吗?
-
您在哪个平台上运行您的应用程序?
-
您是否对对象进行任何验证/刷新?我不记得你想要的确切一个,但你需要重新打包/验证摆动对象以显示更改。试试 repaint();
-
在它工作之前我不需要这样做。但是
validate()没有用。repaint()还没有任何内容。我还在想办法重新包装。
标签: java image swing jbutton imageicon