В методе actionPerformed
вы забыли получить исходный объект от ActionEvent e
и создали новый объект:
Object source = new Object();
Как очевидно, таким образом source
неравняется ссылке на одну из ваших кнопок.
Объект ActionEvent
содержит источник события.Для решения проблемы получите исходный объект из аргумента ActionEvent e
:
Object source = e.getSource();
Если ваши изображения ("aib.jpg", "BOI.jpg" и "kbc.jpeg") находятся вправильный путь и ваши ImageIcon img1, img2, img3
объекты, успешно заполненные, вы можете воспользоваться вышеуказанным исправлением.
Но я могу посоветовать вам, если вы не хотите больше неудобств при отображении изображений и значков в своем проекте, лучше поставитьих в пакете типа resources.images
, а также создайте там класс Java и назовите его, например, Resources.java
.
Затем вы можете создавать изображения, используя поток ресурсов Resources.java
, который находится в том же пакете сизображения и значки:
package resources.images;
import java.net.URL;
import javax.swing.ImageIcon;
public class Resources {
public static ImageIcon getImageIcon(String name) {
URL imagePath = Resources.class.getResource(name);
return new ImageIcon(imagePath);
}
}
Тогда в вашем коде вы можете написать
ImageIcon img1 = Resources.getImageIcon("aib.jpg");
вместо
ImageIcon img1 = new ImageIcon("aib.jpg");
Таким образом, это будет работать, даже если вы упакуетеПриложение в виде файла JAR.
Надеюсь, это поможет.