У меня проблема с настройкой ImageIcon для моего JLabel.Я пытаюсь установить ImageIcon через
JLabel label = new JLabel();
label.setIcon(...);
, и это приводит к отключению ImageIcon.Я уже попробовал почти все, но, похоже, не нашел ничего, что работает.
Это происходит под Windows 10 с Java 1.8.
У меня есть метод, который возвращает ImageIcon
public ImageIcon getIconFromFilePath(String filePath, int width, int height) throws FileNotFoundException {
Image image = ShellFolder.getShellFolder(new File(filePath)).getIcon(true);
return new ImageIcon(width == 0 || height == 0 ? image : image.getScaledInstance(width, height, java.awt.Image.SCALE_SMOOTH), null);
}
и для справки, если я не хочу, чтобы размер ImageIcon был изменен:
public ImageIcon getIconFromFilePath(String filePath) throws FileNotFoundException {
return getIconFromFilePath(filePath, 0, 0);
}
, и я устанавливаю его так:
try {
label = new JLabel(getIconFromFilePath(filepath));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Я также пытался получить Icon (не ImageIcon) через:
FileSystemView.getFileSystemView().getSystemIcon(new File(filepath));
, что приводит к различным типам возвращаемых методов.
Я пробовал его на Macbook, который неНичего не отрезано.
Похоже, что Java в Windows внутренне помещает Icon в какой-то контейнер, который затем обрезает его.
Как-нибудь обойти эту проблему?Большое спасибо!