Create the ImageIcon
once and store somewhere e.g. in the class' static field(s). Then just use the fields assigning the images to buttons.
You cna initialize the images in static section or create the images getters which check whether the images ==null and creates them from file.
UPDATE define a method like this
public static ImageIcon getImage1() {
try {
return new ImageIcon(ImageIO.read(new File("imatges/Mapa.png")))
} catch (IOException e2) {
e2.printStackTrace();
}
return null;
}
And use the method for the button creation
butoMapa = new JButton(getImage1());