C3 = new ImageIcon( getClass().getResource("c3.png") );
C3 = new ImageIcon( this.getClass().getResource("c3.png") );
Эти два идентичных, и предполагают, что ресурс присутствует в папке, представленной именем пакета текущего класса. Очевидно, это не так.
C3 = new ImageIcon( ImageIO.read( getClass().getResource("c3.png") );
Это делает то же самое предположение.
C3 = new ImageIcon( ImageIO.read( ClassLoader.getSystemClassLoader().getResourceAsStream( "c3.png" ) ) );
Предполагается, что ресурс присутствует в корневой папке файла JAR. Очевидно, это не так.
C3 = new ImageIcon( ImageIO.read( getClass().getClassLoader().getResource( "C3.png" ) ) );
Это делает то же самое предположение.
C3 = new ImageIcon(VP2CPConverter.class.getResource("/C3.png"));
Это делает то же самое предположение.
C3 = new ImageIcon( VP2CPConverter.class.getClassLoader().getResource( "C3.png" ) );
Это делает то же самое предположение.
Ясно, что все вышеизложенные предположения неверны. Поэтому сделайте одно из них истинным и используйте соответствующий код, который предполагает это. Если вы хотите получить ресурс через текущий класс, поместите его в пакет текущего класса. Если вы хотите получить его через загрузчик классов или путь, начинающийся с /
, поместите его в корневой каталог файла JAR.