2012-06-25 14 views
9

Czy ktoś może mi wyjaśnić, w noob sposób, jaka jest różnica betweeen ImageIcon i obrazu Zajęcia/obiektów w Java? DziękiJava: ImageIcon porównaniu różnicy Obrazek

+1

Czy to zadanie domowe? Wszystko, co jest potrzebne, aby odpowiedzieć na to pytanie, powinno być udokumentowane w javadocs. – user1329572

+13

Nie, to nie jest praca domowa. W przypadku tego pytania, jak w przypadku większości innych moich pytań dotyczących Javy, informacje można znaleźć w javadocs. Ale gdybym mógł zrozumieć wszystko, od javadoców, nie potrzebowałbym żadnych książek, forów ani google, a nawet Internetu w tej sprawie. –

Odpowiedz

8

Ich charakter i zastosowanie jest inne. Image to abstrakcyjna superklasa wszystkich klas reprezentujących graficzne obrazy. ImageIcon to implementacja interfejsu Icon, który wykorzystuje Image jako źródło.

Edit: Pomyśl o Image jako coś, co mogłobybyć renderowane i ImageIcon jako coś, co będzie być renderowane jako Icon kiedy jego metoda paintIcon() nazywa.

Edytuj: Powyższe linki prowadzą do interfejsu API JDK 6. Te linki prowadzą do interfejsu JDK 8 api: Image i ImageIcon.

+0

OK, więc obiekt 'ImageIcon' ma ukryty obiekt' Obraz' i zapewnia dodatkową warstwę z metodami manipulowania tym obrazem? Ponadto, 'Ikona' może być zaimplementowana na wiele sposobów i niekoniecznie musi mieć obraz podstawowy (na przykład malowanie etykiety lub prostokąta). Czy ja się mylę? Po prostu nie do końca rozumiem, jeśli ikona jest tylko małym obrazkiem, dlaczego mają dwie różne klasy. –

+2

@LeNoob 'Ikona' jest zwykle używany do dekoracji elementów (etykiet, przycisków itp.), Tzn. Są one malowane na czymś. Z kolei obraz "Obraz" służy nie tylko do wyświetlania, ale może służyć do rysowania. Zobacz przykład [Images] (http://docs.oracle.com/javase/tutorial/2d/overview/images.html) samouczek. [Jak korzystać z ikon] (http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html) może również być przydatne. – tenorsax

1

Można skalować i zapisywać obraz, ale nie można tego zrobić za pomocą programu ImageIcon. Do tworzenia obrazów w GUI zwykle musisz używać ImageIcon, ale jeśli nie chcesz tego robić, obraz powinien być lepszy.

+0

Ale jeśli 'ImageIcon' ma ukryty obraz, dlaczego nie mogę go zapisać i skalować? –

Powiązane problemy