Witam, czy wie ktoś jak mogłabym wyłączyć aktywność guzika tak aby guzik nie stawał się szary a był nieaktywny. Próbowałam to zrobić poprzez usunięcie z guzika actionListener'a wtedy guzik ma wygląd jak trzeba jest nieaktywny ale można na niego klikać natomiast przy zwykłym setEnabled(false); robi się szary :|
Tzn chcesz zablokować animację wciskania tylko ? Moim zdaniem trzeba będzie przykryć oryginalną metodę setEnable()
http://forums.sun.com/thread.jspa?threadID=5367802
Kwestia wpisania 5 słów w google...
Temat jest podobny, Ty żeby zmienić UI button, musisz się dowiedzieć jak go oznaczają, być może 'button.disabled' lub coś w tym stylu, poczytaj o UIManager. przykład jak podmienić grafikę już masz
Wyszarzenie elementu GUI ma funkcję informacyjną, a dodatkowo blokuje wszelkie zdarzenia generowane przez ten element. Alternatywą jest zmiana funkcjonalności elementu, co robi się zwykle za pomocą zmiany listenera (-ów) i ewentualnie zmiany etykietki na inną - adekwatną do zmienionej funkcjonalności.
Po co więc chcesz robić guzik nieaktywnym nie informując o tym użytkownika? Tego typu "fjuczer" tylko wprowadza w błąd lub konsternację. Przez wielu użytkowników może zostać uznany za bug aplikacji.
Olamagato
Mam w tym swój cel:
więc wyobraź sobie że robię sapera na guzikach i w momencie naciskania wstawiam na niego odpowiednią ikonę. Wygląda to ładnie, ale miło by było żeby guzik jeszcze nie migał przy naciskaniu po wstawieniu ikony z bombą np, taki szczegół. Najczęściej jeśli ktoś o coś pyta to jest mu to potrzebne, a guziki mogą pełnić różne funkcje w programie tak do Twojej wiadomości.
GhostDog, lobo1111 dzięki za podsunięcie pomysłów.
Właśnie myślałem, że robisz jakąś gierkę, dlatego oszczędziłem Ci kazania o interakcyjności takiego rozwiązania;)
Ale w większości przypadków słowa @Olomagato są wręcz boleśnie prawdziwe. Kwestie tego typu w wielu projektach są traktowane po macoszemu, lub w ogóle nikt nie zdaje sobie z nich sprawy. Pierwszy przykład to podejście do formularzy na stronach, to często masakra wręcz jest.
OK. Tylko "guziki" w oryginalnym saperze wcale nie są wyłączone, lecz aktywne. Nie pozwalają tylko na ustawienie im focusa.
Szczerze mówiąc nie wiem co to jest focus, czy mógłbyś jaśniej? Bo moje wcześniejsze metody nie zadziałały
Pewnie. Focus, to wizualnie taka przerywana ledwo widoczna ramka wokół napisu lub obramowania przycisku lub innego komponentu. A funkcjonalnie jest to możliwość reagowania na klawisz spacji. Na przykład jeżeli masz okno dialogowe z przyciskami OK i Anuluj, to tabulatorem przełączasz sobie focus między tymi dwoma klawiszami. Zależnie który będzie go mieć będzie reagować na spację jako wciśnięcie przycisku. W sytuacji gdy jakiś element focusa nie może uzyskać - jedynym sposobem skorzystania z jego funkcjonalności jest użycie myszki. I nie jest wtedy możliwe użycie klawisza tab aby zmienić focus na taki przycisk.
ps. Oprócz focusa jest w Windows jeszcze domyślny element, który jest obramowany czarną ramką i reaguje na klawisz Enter. ale nie ma to wiele wspólnego z focusem. W wielu przypadkach oba te oznaczenia są widoczne na tym samym przycisku mającym focus.
a nie możesz użyć np: JPanel + JLabel(to dajesz ikonkę) i po prostu dać odpowiedniego MouseListenera do JLabela, Bordera do JPanela