【问题标题】:Why isn't setIcon displaying image on JButton?为什么 setIcon 不在 JButton 上显示图像?
【发布时间】: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


【解决方案1】:

我想我也遇到了同样的问题。我正在使用 Eclipse,在 JGrasp 中测试了我的代码并且它有效。原来 Eclipse 想要 Project 文件夹中的资源,而不是 SRC 或 BIN。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    相关资源
    最近更新 更多