繁体   English   中英

如何在使用后更改JButton图标?

[英]How to change a JButton Icon after using it?

我有一个带有图像的JButton作为Icon,我希望它在点击之后能够改变。 但是,因为它迫使我使用try / catch来设置setIcon,我将它用于构造函数,但是,在那个按钮的actionPerformed方法中,如果我再次在JButton变量上使用setIcon,它会强制我将变量更改为最后。 如果我这样做,那么我在构造函数上得到一个错误,它要求我从JButton变量中删除final。 这就是我的意思:

JButton butoMapa = null;
        try {
            butoMapa = new JButton(new ImageIcon(ImageIO.read(new File("imatges/Mapa.png"))));
        } catch (IOException e2) {
            e2.printStackTrace();
        }
        butoMapa.updateUI();
        butoMapa.setContentAreaFilled(false);
        butoMapa.setBorderPainted(false);
        butoMapa.setFocusPainted(false);
        butoMapa.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent evt) {
                 m = entrarFitxer();
                 butoMapa.setIcon(new ImageIcon(ImageIO.read(new File("imatges/MapaOK.png"))));
             }
        });

我怎样才能使它工作?

创建一次ImageIcon并存储在某个地方,例如在类的静态字段中。 然后只需使用将图像分配给按钮的字段。

您可以在静态部分初始化图像,或者创建图像获取器,检查图像是否== null并从文件创建它们。

UPDATE定义这样的方法

public static ImageIcon getImage1() {
  try {
      return new ImageIcon(ImageIO.read(new File("imatges/Mapa.png")))
  } catch (IOException e2) {
      e2.printStackTrace();
  }
  return null;
}

并使用该方法创建按钮

butoMapa = new JButton(getImage1());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM