У меня есть кадр, содержащий CardLayout с различными JPanels, устанавливающими его в центр JFrame.
На 1-й панели я сфокусировался на 1-м компоненте, то есть на кнопке. Но не могу сосредоточиться на других панелях или компонентах. При настройке необходимой панели я использую следующий код:
public void SetMainPanel(String panel) {
activePanel = panel;
SetFontSize();
cards.show(mainPanel, panel);
mainPanel.revalidate();
mainPanel.repaint();
mainPanel.requestFocusInWindow();
EventQueue.invokeLater(new Runnable() {
public void run() {
mainPanel.grabFocus();
mainPanel.getComponent(0).requestFocus();
}
});
//mainPanel.getComponent(0).requestFocusInWindow();
}
Но я не могу сфокусироваться на панели или ее первом компоненте. Как сделать так, чтобы панель настроек имела фокусировку и фокусировку на 1-й компонент? Наконец, для фокусировки на каждой панели, что лучше - FocusPolicy, Manager, Keyboard .... Панели либо имеют все кнопки ИЛИ таблицы и кнопки ИЛИ формы с полями. Есть это 3 типа панелей.
Кстати, панели, добавленные в cardLayout, являются фокусируемыми.
Любые идеи ....
РЕДАКТИРОВАТЬ: Код был отредактирован, как показано mKorbel.