java - 更改 jLabel 图标

标签 java swing netbeans jlabel imageicon

似乎我不是唯一有这个问题的人,但我找不到解决问题的答案。

我创建了一个标签,并使用所见即所得界面设计器为其分配了一个图标
现在我想在运行时动态更改图标。

逻辑方式是这样的(我的第一次尝试):

ImageIcon newIcon = new ImageIcon("SomePath");
jLabel1.setIcon(newIcon); 

当我这样做时,图标就会从界面上消失,所以我用谷歌搜索它,有人说“刷新”图标,无论这意味着我尝试过:

ImageIcon newIcon = new ImageIcon("SomePath");
newIcon.getImage().flush();
jLabel1.setIcon(newIcon);

仍然遇到同样的问题..图标消失了。

我做错了什么?


更新(完整方法):

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
attempted = myEngine.Attempt('q', word);
if(attempted)
  {
      this.jTextArea1.setText(myEngine.ChangeEncrypt('q', word, this.jTextArea1.getText()));    
  }
  else
  {
      JOptionPane.showMessageDialog(null,"The Letter Q is not in the word", "Error",JOptionPane.WARNING_MESSAGE);
      jButton1.setEnabled(false);
      life ++;
      ImageIcon newIcon = myEngine.UpdatePicture(life);
      newIcon.getImage().flush();
      jLabel1.setIcon(newIcon);
  }

这是 UpdatePicture 方法:

public ImageIcon UpdatePicture(int life)
{
  ImageIcon emptyIcon = new ImageIcon();
  if (life == 0)
  {
       ImageIcon iconZero = new ImageIcon("/hang0.gif");
       return iconZero;
  }
  if (life == 1)
  {
      ImageIcon iconOne = new ImageIcon("/hang1.gif");
      return iconOne;
  }
  if (life == 2)
  {
      ImageIcon iconTwo = new ImageIcon("/hang2.gif");
      return iconTwo;
  }
  if (life == 3)
  {
      ImageIcon iconThree = new ImageIcon("/hang3.gif");
      return iconThree;
  }
  if (life == 4)
  {
      ImageIcon iconFour = new ImageIcon("/hang4.gif");
      return iconFour;
  }
  if (life == 5)
  {
      ImageIcon iconFive = new ImageIcon("/hang5.gif");
      return iconFive;
  }
  if (life == 6)
  {
      ImageIcon iconSix = new ImageIcon("/hang6.gif");
      return iconSix;
  }

  return emptyIcon;

}

不确定整个代码是否必要,但仍然可能有帮助。

生命变量从0开始。
我检查了一下,在 UpdatePicture 中它点击了 "/hang1.gif"; 并返回它。

最佳答案

如果该文件位于您的 src 文件夹中,则:

ImageIcon ii = new ImageIcon(getClass().getResource("/myFile.gif"));

关于java - 更改 jLabel 图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13277086/

相关文章:

php - 先前分配的 Sublime text 3 片段变量

java - 在 NetBeans 中看不到 Sinhala Unicode 字符

java - 处理Java程序异常退出

Java Swing-更改按下的按钮的图标

java - 为什么界面有帮助?

Java Swing : Simulate buttonClick animation with KeyBind

java - 可滚动文本区域?

java - 我可以将从netbeans截取的屏幕截图保存到Mysql吗

java - 创建 owl 文件时出错

java - 无法使用 -Xmx > 966m 运行 java