Przesuwanie okienka kliknięciem w panel - nie w obramowanie

0

Cześć

Mam okienko JFrame, główny panel który jest na całym okienku z obramowaniem matteBorder ustawionym na 40 pikseli z każdej strony, i kilka paneli z kontrolkami w środku panelu głównego. Wartość this.setUndecorated mam na true.
Czy jest możliwość przesuwania okienka klikając na panelu głównym? W tym wypadku na obramowaniu, bo w środku są inne panele. Jest taka możliwość?

0

Pewnie, że tak. Odbierasz event mousePressed, ustawiasz sobie jakąś zmienną, która informuje o stanie wleczenia i likwidujesz to ustawienie kiedy odbierzesz event mouseReleased. W tym czasie odbierasz komunikaty mouseMove i przesuwasz okno za pomocą setLocation (o ile ta zmienna jest ustawiona). Jednak pozycję lewego górnego rogu okna musisz sobie chyba sam liczyć (chyba, że pojawiły się jakieś ułatwiacze w ostatniej edycji Javy) na podstawie początkowej pozycji myszy w momencie wciśnięcia buttona na okienku i bieżącej pozycji myszy. Można też chyba wykorzystać event mouseDragged, ale nigdy nie chciało mi się sprawdzić czy działa jak należy kiedy w obsłudze zdarzenia odpalisz setLocation.

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