私は、FrameLayoutとJFrameを中心に様々なJPanelを設定したFrameを持っています。スイング:フォーカスコンポーネント
第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に追加されたパネルはフォーカス可能です。
任意のアイデア....
EDIT:mKorbelによって示されるように、コードが編集されています。ほとんどの場合で
に近づくのです。 &setFocusTraversalPolicyProvider(true);テーブルとボタンのパネルを持つパネルの場合、テーブルからボタンのパネルにフォーカスを移すにはどうすればよいですか? – Tvd
Java命名規則を覚えておいてください。 – kleopatra