Вы не можете читать отдельные записи файла .jar как файлы, потому что они не являются отдельными файлами. Это просто подпоследовательность байтов, указывающих сжатые данные. Это означает, что ваш сканер выходит из строя, а ваша коллекция teams
пуста, что, в свою очередь, вызывает teams.get
исключение.
Если вы запустите файл .jar в командной строке, вы можете убедиться в этом сами. Такая команда обычно выглядит так: java -jar myteamsproject.jar
Файл, который является частью вашего приложения, называется ресурсом. Вы должны прочитать его с помощью getResource или getResourceAsStream метода класса:
Scanner s = new Scanner(Main.class.getResourceAsStream("teams.txt"));
Аналогично, вы должны передать ресурс в качестве URL-адреса ImageIcon, а не имя файла:
ImageIcon icon = new ImageIcon(Main.class.getResource("icon2.png"));
Конечно, приведенные выше строки не будут работать, если команды teams.txt и icon2.png фактически не находятся в файле .jar. Когда файл .jar собран, вы должны проверить его содержимое и убедиться, что эти записи присутствуют.