Разница между Icon и ImageIcon?
Icon bug = new ImageIcon( getClass().getResource( "bug1.png" ) );
ImageIcon bug = new ImageIcon( getClass().getResource( "bug1.png" ) );
в чем разница между этими двумя? Моя книга всегда использует путь в первой строке, чтобы объявить ImageIcon
но не лучше ли объявить его вторым способом, потому что более конкретно это ImageIcon
?
5 ответов
их природа и применение разных. Image-абстрактный суперкласс всех классов, представляющих графические изображения. ImageIcon-это реализация интерфейса значков, который использует изображение в качестве источника.
Подумайте об изображении как о чем-то, что может быть визуализировано, и ImageIcon как о чем-то, что будет визуализировано как значок при вызове метода paintIcon ().
цитата из здесь
Надеюсь, что это то, что вы ищу ;)
Icon
является интерфейсом, тогда как ImageIcon
реализация этого интерфейса.
первый лучше, потому что это означает, что вы можете изменить свой ImageIcon для другой реализации икона без изменения остальной части вашего приложения.
вы должны начать с чтения через JavaDocs на ImageIcon
.
Вы заметите, что ImageIcon
осуществляет Icon
, что означает, что его можно использовать там, где когда-либо Icon
ожидается (например,JButton
и JLabel
например), но он также предоставляет средства, с помощью которых вы можете получить экземпляр Image
, который позволяет рисовать его с помощью Graphics
без Component
ссылка,Icon
должен
посмотреть java-imageicon-vs-image-разница
Это нить о разнице между изображением и imageicon, но в комментариях они также говорят об иконе и тому подобное. Может, это поможет.
оба похожи, но первый из них лучший, потому что ImageIcon является значком, но не наоборот.Когда я говорю ImageIcon значок ImageIcon значок реализует.