Ustawienie aktywnego panelu w celu obsługi zdarzenia klawiszy

0

Witam
Jak dotąd udawało mi się znajdować rozwiązania problemów w internecie lub samemu, ale aktualnie gnębi mnie pewna kwestia.

Otóż mam programik w którym poprzez kliknięcia JButton program przenosi się do kolejnych paneli. Dla przykładu chcę zrobić sobie ruchomy kwadracik sterowany strzałkami. Ogólnie kod działa ale jest jeden problem.
Klawisze strzałek uaktywniają się dopiero jak kliknę myszką poza okno programu np na pulpicie i następnie na oknie programu (klikanie w okno programu nie powoduje możliwości sterowania strzałkami). Problem nie występuje gdy ruchomy kwadrat umieszczę na pierwszym panelu (tym który znajduje się zaraz po włączeniu programu) .

próbowane metody:
setFocusable(true);
setFocusTraversable(true)

Wiem że trzeba dołączać kod według regulaminu ale ze względu na jego obszerność jeśli to możliwe proszę o wstępne sugestie

0

panel.requestFocus() też próbowałeś?

0

sprawdziłem kolejny raz i niestety dalej tak samo

0

Bez kodu wiele nie zrobimy.

0

Dziękuję za zainteresowanie, na szczęście udało mi się przerobić kod na przyjemniejszą wersja, pomogła też modyfikacja metody paintComponent().
Mam takie pytanie jeszcze. np. program posiada JFrame która zawiera JPanel_1. W JPanel_1 - znajdują się JPanel_2 oraz JPanel_3 gdzie są równocześnie wyświetlane. Chcę żeby dwa panele (JPanel_2 oraz JPanel_3) były aktywne równocześnie np w lewym sterować np. ASDW a prawym strzałkami (bez przełączania TAB), w jedym czasie
pozdrawiam

0

Coś takiego

        if(ke.getKeyCode() == KeyEvent.VK_D)
        {
            left.moveX(1);
        }
        if(ke.getKeyCode() == KeyEvent.VK_RIGHT)
        {
            right.moveX(1);
        }
        repaint();
0
bogdans napisał(a):

Coś takiego

        if(ke.getKeyCode() == KeyEvent.VK_D)
        {
            left.moveX(1);
        }
        if(ke.getKeyCode() == KeyEvent.VK_RIGHT)
        {
            right.moveX(1);
        }
        repaint();

No jasne. Twoja idea pozwoliła zredukować sporo zbędnego kodu
dzięki
Pozdrawiam

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