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
Odpowiedz
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.
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. –
@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
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.
Ale jeśli 'ImageIcon' ma ukryty obraz, dlaczego nie mogę go zapisać i skalować? –
Czy to zadanie domowe? Wszystko, co jest potrzebne, aby odpowiedzieć na to pytanie, powinno być udokumentowane w javadocs. – user1329572
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. –