#java #swing #jframe
#java #swing #jframe
Вопрос:
Недавно я написал программу в JFrame. Я использую static ImageIcon img = new ImageIcon("X:/workspace/eclipse/Timer5/rsc/icon.png");
и f1.setIconImage(img.getImage());
для отображения значка для JFrame. Моя проблема в том, что если программа экспортируется как выполняемая jar, путь на других компьютерах больше не работает, и на значке отображается стандартный значок Java.
Поскольку я могу указать такой путь logo = ImageIO.read(getClass().getResource("/logo.png"));
g.drawImage(logo, 657, 640, 485, 85, null);
в своем классе label (который расширяет JLabel), и он работает на других компьютерах или перемещаемых файлах, я хотел спросить, работает ли это также для значков изображений. Если я введу путь, как я это сделал, ImageIO.read()
тогда значок не будет загружен.
Ответ №1:
Я хотел спросить, работает ли это также для значков изображений.
Прочитайте ImageIcon
API.
Вы найдете конструктор, который принимает an Image
в качестве параметра.
Так что да, вы можете и должны использовать этот getResource()
метод:
Image image = ImageIO.read(...);
ImageIcon icon = new ImageIcon( image );
JLabel label = new JLabel( icon );