it-swarm.com.ru

Как изменить значок Java в JFrame

Итак, я немного исследовал этот тишину. Я довольно новичок в Java, но думал, что это будет легко. Я пробовал почти все способы, на которые были даны ответы на этом сайте, и все еще не повезло, и обычно, когда я смотрю здесь, я могу найти ответ, который соответствует тому, что я ищу. Кто-нибудь знает, как изменить значок Java в верхнем углу JFrame. Я довольно уверен, что это не мой путь к файлу, потому что все мои изображения находятся в одной папке, и все они работают, это единственное, что я не могу заставить работать.

Это первая часть моего кода для главного меню моей программы, все работает, кроме случаев, когда я пытаюсь добавить изображение значка. Код, который я ввел ниже, не содержит ничего для JFrame IconImage, я удалил его, так как он не работал. Так что если есть кто-то, кто знает, как заставить его работать с этим кодом, который был бы очень признателен, большое спасибо продвинутому!

public class MainFrame
{
private MyPanel main;
private MyPanel2 create;
private MyPanel3 update;
private MyPanel4 find;
JFrame frame = new JFrame("Main Menu:");

public void displayGUI()
{
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel contentPane = new JPanel();
    contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    contentPane.setLayout(new CardLayout());
    main = new MyPanel(contentPane, this);
    create = new MyPanel2(contentPane);
    update = new MyPanel3(contentPane);
    find = new MyPanel4(contentPane);
    contentPane.add(main, "Main Menu");
    contentPane.add(create, "Create Part");
    contentPane.add(update, "Update Part");
    contentPane.add(find, "Find Part");
    frame.setLocation(200, 200);
    frame.setSize(700, 580);
    frame.setContentPane(contentPane);

    frame.setVisible(true);

}
9
Garrett Shaw

У меня есть ответ для вас. Сначала убедитесь, что изображения находятся в папке, а не в пакете. Затем вставьте эту строку кода:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/image.png"));
ImageIcon icon = new ImageIcon( );
setIconImage(icon.getImage());

Этот код получает изображение из пути к классу и возвращает его в виде значка изображения, а затем устанавливает его. Это должно добавить значок изображения в приложение. Если это не так, то скажи мне.

Правка: После того, как вы сказали мне, что это не сработало, я решил еще раз взяться за это ... Сначала поместите ваши изображения в совершенно отдельную папку. Я обычно называю это/Res. Затем поместите ваше изображение там. Теперь для загрузки я выбрал совершенно другой маршрут. Я решил использовать ImageIO вместо загрузки по умолчанию. Чтобы загрузить изображение, вы используете этот код:

try {
    frame.setIconImage(ImageIO.read(new File("res/icon.png")));
}
catch (IOException exc) {
    exc.printStackTrace();
}

ImageIO намного лучше работает для загрузки изображений. Если это все еще не работает, пожалуйста, скажите мне.

Если вы хотите экспортировать это как JAR, поместите папку с тем же именем, которое вы использовали в программе, в тот же каталог, что и JAR.

14
user2675678

Например, в проекте NetBeans создайте папку ресурсов в папке src.

Поместите ваши изображения (JPG, ...) туда.

Независимо от того, используете ли вы ImageIO или Toolkit (включая getResource), Вы должны указать начальный/путь к файлу изображения:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resources/agfa_icon.jpg"));
setIconImage(image);

Если этот код находится внутри вашего класса JFrame, изображение добавляется в рамку в виде значка в строке заголовка.

2
Alain Demortier

Это прекрасно работает для меня . Просто добавьте это после того, как вы создали JFrame.

try {
   Image image = new ImageIcon("/icons/image.jpg").getImage();
   frame.setIconImage(image);
}catch(Exception e){
   System.out.println("Application icon not found");
}
2
Al-amin Nowshad
  1. Сначала вставьте изображение (fav.png) в тот же пакет,
  2. Напишите следующий код в конструкторе of JFrame

setIconImage (Toolkit.getDefaultToolkit () GetImage (GetClass () getResource ( "fav.png"))..);

Примечание: - fav.png это имя иконки

1
ersks
this.setIconImage(new ImageIcon(getClass().getResource("/iconsfolder/iconsname.jpg")).getImage()); 
          // sets the Global icon for the system

попробуйте этот код поставить после этого кода: 

public void displayGUI()
{
0
kegs Production