У меня возникли проблемы с этим простым примером кода из книги. Он должен представлять один и тот же образ 2 раза в одном окне (метки северного и южного), один над другим. Когда я запускаю его, он отображает this вместо this (я сожалею, что не разрезал изображения или не изменил их размер). Ниже мой код. Я запускаю Eclipse Juno на Ubuntu 13.04.Почему этот простой код не работает
package gui;
import java.awt.BorderLayout;
import javax.swing.*;
public class Gui {
public static void main(String[] args) {
JLabel northLabel = new JLabel ("North");
ImageIcon labelIcon = new ImageIcon ("GUItip.gif");
JLabel centerLabel = new JLabel (labelIcon);
JLabel southLabel = new JLabel (labelIcon);
southLabel.setText("South");
JFrame application = new JFrame();
application.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
application.add(northLabel, BorderLayout.NORTH);
application.add(centerLabel, BorderLayout.CENTER);
application.add(southLabel, BorderLayout.SOUTH);
application.setSize(300, 300);
application.setVisible(true);
}
}
Вероятно, вы не ищете изображение в нужном месте. Попробуйте использовать абсолютный путь к изображению. Либо это, либо выяснить, где находится ваш каталог пользователя, и поместить туда изображение. –
Или, если изображения вложены в приложение, используйте 'Gui.class.getResource (« GUItip.gif »); вместо этого - еще лучше, используйте' ImageIO', он будет генерировать более значимое исключение ... – MadProgrammer
Это не хорошая практика для жесткого кодирования абсолютных путей. Поместите изображение где-нибудь в проект и укажите путь к корневой папке. –