wygląd guzika po włączeniu setEnabled(false);

0

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 :|

0

Tzn chcesz zablokować animację wciskania tylko ? Moim zdaniem trzeba będzie przykryć oryginalną metodę setEnable()

0

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

0

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.

0

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.

0

GhostDog, lobo1111 dzięki za podsunięcie pomysłów.

0

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.

0

OK. Tylko "guziki" w oryginalnym saperze wcale nie są wyłączone, lecz aktywne. Nie pozwalają tylko na ustawienie im focusa.

0

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

0

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.

0

a nie możesz użyć np: JPanel + JLabel(to dajesz ikonkę) i po prostu dać odpowiedniego MouseListenera do JLabela, Bordera do JPanela

1 użytkowników online, w tym zalogowanych: 0, gości: 1