簡體   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