Невозможно установить значок для Java-приложения с помощью метода setIconImage () - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь создать один простой инструмент для тестирования на основе GUI на Java с использованием Eclipse. Я пытался добавить значок в свое приложение. Изображения присутствуют внутри проекта в папке. Подскажите, пожалуйста, какую ошибку я совершаю.

Я использую ниже два способа, к сожалению, оба мне не помогают. -

1.) frame.setIconImage(image).

2.) setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource(Filepath)));

Ниже приведена настройка моего проекта в Eclipse -

enter image description here

Ниже приведен код, который я использую -

public static void main(String[] args) {

    JFrame frame = new JFrame("Testing Tool");

    // setting close operation
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // sets 500 width and 600 height
    frame.setSize(500, 600);

    try {
           Image image = new ImageIcon("/Project_T/Images/biplane.jpg").getImage();
           frame.setIconImage(image);


        } catch(Exception e) {
           System.out.println("Application icon not found");
        }
     // uses no layout managers
    frame.setLayout(null);

    // makes the frame visible
    frame.setLocationRelativeTo(null);  
    frame.setVisible(true);

}

Поскольку я собираюсь создать файл .exe для этого проекта с использованием lunach4J, это способ хранения файлов (размещения их в папке проекта, поскольку я буду использовать несколько изображений и файлов), обеспечивающий работу приложения на любой машине.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Я много возился и, наконец, нашел выход, так как мое объяснение было довольно длинным, поэтому я подумал написать ответ. Также, пожалуйста, предположите, что это хороший способ, так как мы будем экспортировать наш проект.

Java дает вам возможность изменить ICON для вашего приложения с помощью из setIconImage (изображение), но этот метод не так уж прям, так как мы имея дело с несколькими файлами, которые должны присутствовать при выполнении кода, поэтому мы должен был бы гарантировать, что их пути правильны и доступны для бесперебойной работы.

Следовательно, мы сохраняем наши файлы внутри src , создавая другую папку и оттуда мы можем легко импортировать файлы. Выполните следующие действия

Шаг - 0 - Поместить файлы в папку src проекта

Поместите файлы в папку scr, создав другую папку, здесь я создал другую папку с именем images и поместил туда свои файлы, следовательно, путь к файлу будет

"Images / biplane.png",

пожалуйста, убедитесь, что перед изображениями (название нашей папки) не стоит "/"

enter image description here

Шаг - 1 - Поместите путь к файлу внутри переменной URL

Шаг - 2 (Необязательно) - Распечатайте эту переменную URL, чтобы проверить, что это не нуль. Если это значение равно нулю, проверьте ваш путь еще раз и повторите упражнение, чтобы это значение не было нулевым.

Шаг - 3 - Теперь передайте этот URL-адрес методу ImageIcon.

Шаг - 4 - вызвать метод setIconImage с этим изображением.

Используемый код -

URL url = test.class.getClassLoader().getResource("Images/biplane.png");
System.out.println("Path for file is :- \"" + url + "\"");

Image image = new ImageIcon(url).getImage();
frame.setIconImage(image);
0 голосов
/ 04 июля 2018

Это код, который я использовал с приложением Swing, упакованным в исполняемый файл JAR. У JFrame есть изображение значка.

private static final String APP_ICON_PATH = "myapp/icondirectory/report.png";
ImageIcon icon = new ImageIcon(ClassLoader.getSystemResource(APP_ICON_PATH));
frame.setIconImage(icon.getImage())

myapp - это корень структуры моего пакета; например, класс GUI, использующий фрейм, находится в пакете myapp.gui package. Файлы изображений PNG находятся в исполняемом файле JAR приложения (как вы видите в коде в отдельной папке).

Кроме того, посмотрите в руководствах Oracle Swing по Java, объясняющих использование значков .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...