Czy można zmienić ikonę aplikacji za pomocą JavaFX, czy też trzeba to zrobić za pomocą Swinga?
172
Zakładając, że Twój etap jest „etapem”, a plik znajduje się w systemie plików:
stage.getIcons().add(new Image("file:icon.png"));
Zgodnie z poniższym komentarzem, jeśli jest zapakowany w zawierający słoik, musisz zamiast tego zastosować następujące podejście:
stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("icon.png")));
stage.getIcons().add( new Image( <yourclassname>.class.getResourceAsStream( "icon.png" )));
działa..dektop
plik. Zobacz mój opis tutajPróbowałem tego i to całkowicie działa. Kod to:
icon.png znajduje się w tym samym folderze co pliki źródłowe.
źródło
Pełny program dla początkujących :) Ten program ustawia ikonę dla StackOverflowIcon.
Wyjście Screnshot
Nie ma potrzeby zmiany kodu. Nadal działa dobrze. Przetestowane i zweryfikowane w Javie 1.8 (1.8.0_45). Ścieżka może być ustawiona na lokalną lub zdalną, obsługiwane są oba.
LUB
Mam nadzieję, że to pomoże. Dzięki!!
źródło
możesz dodać go w fxml. Poziom sceny
źródło
Jeśli masz folder obrazów i ikona jest w nim zapisana, użyj tego
a jeśli używasz go bezpośrednio z pakietu, co nie jest dobrą praktyką, użyj tego
a jeśli masz strukturę folderów i masz w niej swoją ikonę
źródło
Jeśli twoja ikona.png znajduje się w katalogu zasobów i pamiętaj o wstawieniu „/” przed, w przeciwnym razie nie zadziała
źródło
Co myślisz o utworzeniu nowego pakietu tj. Image.icons w swoim katalogu src i przeniesieniu tam obrazów .png? Wystarczy napisać:
To rozwiązanie działa u mnie idealnie, ale nadal nie jestem pewien, czy jest poprawne (tutaj początkujący).
źródło
resources
folderze.Za pomocą tej metody możesz dodać więcej niż jedną ikonę o różnych rozmiarach. Obrazy powinny mieć różne rozmiary tego samego obrazu, a zostanie wybrany najlepszy rozmiar.
eg. 16x16, 32,32
źródło
folder obrazów musi znajdować się w folderze zasobów.
źródło
Możesz łatwo umieścić ikonę w swojej aplikacji za pomocą tej linii kodu
stage.getIcons (). add (nowy obraz ("ścieżka obrazu"));
źródło
Dobrym zwyczajem jest tworzenie folderu obrazów w folderze src i pobieranie z niego obrazów.
źródło
Użyłem tego w mojej aplikacji
Tutaj okno jest sceną.
źródło
Jeśli uruchomisz plik jar, kod określony przez Michaela Berry'ego zmieni ikonę na pasku tytułu i na pasku zadań. Nie można zmienić ikony skrótu.
Jeśli uruchamiasz program natywny skompilowany za pomocą com.zenjava, musisz dodać link do ikony programu:
Spowoduje to dodanie ikony do skrótu i paska zadań.
źródło
Przełącz ikony w czasie wykonywania:
Oprócz odpowiedzi tutaj stwierdziłem, że po przypisaniu ikony do aplikacji po raz pierwszy nie można jej przełączać, po prostu dodając nową ikonę do sceny (byłoby to pomocne, gdybyś musiał zmienić ikonę swojego aplikacja od wł. / wył. włączona / wyłączona).
Aby ustawić nową ikonę w czasie wykonywania, użyj funkcji getIcons (). Remove (0) przed próbą dodania nowej ikony, gdzie 0 to indeks ikony, którą chcesz zastąpić, jak pokazano tutaj:
Aby uzyskać dostęp do etapu z innych metod lub klas, możesz utworzyć nowe pole statyczne dla etapu w swojej głównej klasie, aby uzyskać do niego dostęp z metody start () poprzez hermetyzację metody statycznej, do której można uzyskać dostęp z dowolnego miejsca w aplikacji .
źródło
Jeśli
Invalid URL or resource not found
umieściłeś swój icon.png w folderze "bin" w twoim obszarze roboczym.źródło
Innym prostym sposobem na wstawienie własnej ikony na pasku tytułu w JavaFX jest dodanie obrazu do głównego stołu montażowego przy użyciu następującej metody:
Upewnij się, że importujesz javafx.scene.image.Image (jeśli używasz ide, takiego jak netbeans, powinno to być zrobione automatycznie).
źródło
Spróbowałem tego i działa:
źródło