Java блокирует фокус от JComponent

Я сделал графический интерфейс для своего приложения. JFrame имеет 2 JPanels, панель 1 и панель 2. panel1 - это просто JPanel с пользовательской картиной, которая перерисовывает себя каждые 5 мс.

panel2 - моя первая попытка реализации CardLayout: она содержит JPanels subPanel1 & subPanel2. subPanel1 содержит JComboBox и добавляется в panel2:panel2.add(subPanel1);.

SubPanel2 имеет.setLayout(new CardLayout()); команда, и я добавляю 3 новых JPanels в него, с подходящим itemListener и все. Конечно, я также добавлю это:panel2.add(subPanel2);

Теперь к проблеме: фокусировка компонентов в Java. У меня есть знание методовsetFocusable(boolean) а такжеrequestFocus(), Но я не могу заставить их вести себя каким-либо логическим образом.

Во-первых, коренная проблема всех них: когда поле со списком получает фокус, я вообще не могу его расфокусировать (пробовал щелкать везде курсором).

Ниже приведены эксперименты, которые я провел:

1) без какого-либо кода, говорящего о фокусировке по всему приложению, комбинированный список начинается с фокуса, независимо от того, какой порядок panel1 и panel2 добавляются в JFrame.

2) если я установлюpanel1.setFocusable(true); (в своем конструкторе) он начнется с фокуса

3) если я установлюpanel1.setFocusable(false); а также просить сосредоточиться на этом, он не понимает. (единственное, что работает как положено)

4) если я установлю панель 2, subPanel1 или subPanel2 не на фокусировку по отдельности или в любой комбинации, они все равно могут получить фокус (то есть выпадающий список, то есть единственный компонент, способный зарегистрировать фокус).

5) если я установил, что поле со списком не сфокусировано, я по-прежнему смогу прокручивать карты в CardLayout с помощью элемента itemListener, но фокус не прилипает к нему. На самом деле панель 1 все еще регистрирует клавиатурные вводы

Так что на самом деле я очень смущен всей этой «фокусировкой». Может быть, это не то, что я предполагаю? То, что я пытаюсь сделать, это полностью заблокировать все взаимодействие с panel2, пока флаг (который оценивается каждые 5 мс) не является истинным. Правильно ли я предполагаю, что в отличие от JPanels, JComboBox автоматически имеет mousebuttonListener, чтобы получить фокус при нажатии? если нет, то как полностью отключить JComboBox и все компоненты, отображаемые на текущей карте? Это нормальное поведение, что компоненты внутри нефокусируемого компонента все еще могут быть сфокусированы?