Akcja na jednym JPanelu odbija się na drugim

0

Hej,

Pomyślałem, że trochę rozwinę bardzo prosty programik, który wczoraj napisałem, więc postanowiłem na początku odbugować to, co jest zabugowane, a później myśleć o kolejnych funkcjach. W każdym razie programik składa się z jednej klasy rozszerzającej JPanel i implementującej ChangeListener'a, a w swoim ciele zawiera instancję klasy JColorChooser. Problem polega mianowicie na tym, że gdy zmieniam opacity tła (bg color) np. za pomocą suwaka 'transparency' w zakładce 'HSV', to nie działa to tak jak powinno. Mianowicie, po pierwsze to, co robię w obszarze obiektu JColorChooser "przebija" się na JPanel ('Banner Look'), w którym mam osadzony JLabel ze zmieniającym się kolorem tła i kolorem foregroundu. Po zminimalizowaniu jakiegoś innego programu i powrocie do mojego programiku wszystko wygląda tak jak wyglądać docelowo powinno... Próbowałem już nawet 'maskować' JPanel np. tłem z innego JLabela, ale... :P

Poniżej dwa screeny ilustrujące problem i to jak powinno być:

  1. Problem
    Źle.jpg

  2. Tak powinno być
    Dobrze.jpg

Będę bardzo wdzięczny za wszelkie porady!

PS aha jeszcze jedno - czy istnieje sposób, aby wejść np. w klasę JColorChooser i może nie tyle ją przerobić, co np. pooglądać zastosowane w niej rozwiązania, by np. móc je wykorzystać w stworzeniu bardziej interaktywnego odpowiednika JColorChooser?

Pozdrawiam :)

0

W sprawie PS, w NetBeans (i chyba we wszystkich większych IDE do Javy) istnieje funkcja podejrzenia źródła. Można tam sobie obejrzeć kod klas należących do JDK.

0

Mógłbyś podać przekierowanie jeżeli znasz takowe do owej funkcji? Będę wdzięczny. Btw problem z przebijaniem akcji rozwiązany :) Tak jak myślałem, wywalał się na L&F. Teraz przy zabawie Transprarency i Alpha dla tła jest wszystko ok.

Solved.jpg

Pozdrawiam

0

MOżna też wygląd zmieniać aplikacji używajać klasy UIManager, i odpowiednio podobierać kolory i tła.

0
Gjorni napisał(a):

Mógłbyś podać przekierowanie jeżeli znasz takowe do owej funkcji?

Gdy korzystasz z NetBeans i masz np. taki fragment:

JFrame f = new JFrame()

To po zaznaczeniu JFrame wciskasz Ctrl+Shift+B (lub prawym przyciskiem myszy, Navigate > Go to Source) i wyświetla się plik klasy JFrame w trybie tylko do odczytu.

0

Ooo! Właśnie o coś takiego mi chodziło. Super, dziękuję @Madaoo :)

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