Ваша программа выйдет из строя, потому что RockPaperScissors.class.getResource("Rock.jpg")
не удалось найти указанный файл. Это также учитывает другие изображения, которые вы пытаетесь загрузить. Java пытается найти их в корневой папке проекта или в том же каталоге, что и файл JAR, когда вы превращаете свою программу в исполняемый JAR. Как вы указали, они находятся в той же папке, что и перечисление.
Я бы рекомендовал создать новую папку в корне вашего проекта под названием «res» и переместить все ваши файлы изображений в это папка. Затем замените:
new ImageIcon(RockPaperScissors.class.getResource("Rock.jpg"))
на:
new ImageIcon("res/Rock.jpg")
И сделайте это для каждого места, где вы загружаете изображения.
На несвязанной ноте , так как иконы переименования RockPaperScissors не должны меняться, лучше (и проще) сделать их общедоступными. Конечные переменные могут быть назначены только один раз и должны быть назначены при создании объекта. Таким образом, они действуют как константы. В коде:
public final ImageIcon icon;
private RockPaperScissors(ImageIcon icon) {
this.icon = icon;
}
И просто избавитесь от геттера и сеттера, теперь вы можете напрямую перейти к полю значка.