Я видел много разных примеров, показывающих, как установить IconImage
в JFrame, чтобы приложение использовало этот значок вместо стандартной кофейной кружки.Ни один из них не работает для меня.
Вот «мой» код (в значительной степени заимствованный из других постов и Интернета в целом):
public class MyApp extends JFrame
{
public MyApp()
{
ImageIcon myAppImage = loadIcon("myimage.jpg");
if(myAppImage != null)
setIconImage(myAppImage.getImage());
}
private ImageIcon loadIcon(String strPath)
{
URL imgURL = getResource(strPath);
if(imgURL != null)
return new ImageIcon(imgURL);
else
return null;
}
}
Этот код не работает в loadIcon
, когдавызов метода getResource()
.Для меня здесь есть только 2 возможности: (1) myImage.jpg
находится в неправильном каталоге, или (2) getResource()
что-то не нравится в моем изображении (мне пришлось преобразовать его из CMYK в RGB в Photoshop, так чтоЯ мог бы использовать то же изображение в другом месте с ImageIO
.)
Я использовал трюк System.out.println(new File(".").getAbsolutePath());
, чтобы найти каталог, в котором должно храниться изображение JPG, но все равно ничего не получалось.Впоследствии я поместил JPG практически во все каталоги внутри моего проекта, просто чтобы исключить местоположение файла в качестве виновника.
Так что мне остается верить, что есть что-то, что getResource()
не нравится в JPGсам.Но я уже исчерпал свое понимание изображений и значков в могущественном, широком мире Swing.
Мой JPG прекрасно загружается в других средствах просмотра изображений, так что это тоже исключено.У кого-нибудь есть идеи?
Заранее спасибо!