Я пытаюсь прочитать миниатюру (значок 32x32px) из файла (.ico/.exe) и установить ее на ярлык JavaFX.Java/JavaFX: установить значок Swing для метки JavaFX
Моя первая попытка:
public Icon getLargeIcon(String exeFile) {
if (exeFile != null) {
File file = new File(exeFile);
try {
ShellFolder sf = ShellFolder.getShellFolder(file);
return new ImageIcon(sf.getIcon(true), sf.getFolderType());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
return null;
}
После того, что я делаю это:
Icon largeIcon = getLargeIcon(file.getAbsolutePath());
ImageIcon swingImageIcon = (ImageIcon) largeIcon;
java.awt.Image awtImage = swingImageIcon.getImage();
Image fxImage = javafx.scene.image.Image.impl_fromPlatformImage(awtImage);
lblAppIconValue.setGraphic(new ImageView(fxImage));
Я искал корыто несколько сайтов, и нашел, что это, но это дает мне исключение: java.lang.UnsupportedOperationException: unsupported class for loadPlatformImage
Моя вторая попытка:
URL url = file.toURI().toURL();
Image image = new Image(url.toString());
lblAppIconValue.setGraphic(new ImageView(image));
Также не работает ...
Мой вопрос: Как я могу установить javax.swing.Icon на метку JavaFX? Является ли это возможным? Если это невозможно, как я могу прочитать эскиз из файла и установить его как значок/графику для ярлыка JavaFX?
Спасибо!
У меня есть ошибка на этой строке: graphics.drawImage (0, 0, awtImage); «Метод drawImage (Image, int, int, ImageObserver) в типе Graphics не применим для аргументов (int, int, Image)» – baris1892
К сожалению, неправильно вспомнили параметры. Я исправил это сейчас. –
Aaah, отлично работает, большое вам спасибо! – baris1892