内部フレームを開くアイテムのメニューがありますが、フレーム内で2回クリックする必要があるたびに。1回目はInt.frameにフォーカスを与え、2回目は実際に何かを実行します(テキストフィールドにフォーカスを与えます)。
だから、ここに私の質問があります:Int.Frameに自動的にフォーカスを与えることは可能ですか?
メイン画面のコード:
public final class principal extends javax.swing.JFrame {
viewCity city = new viewCity();
public principal() {
initComponents();
myListeners();
setLocationRelativeTo(null);
}
public void myListeners() {
menuCity.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
menuCityClicked(e);
}
});
}
public void central(JInternalFrame window1) {
int lDesk = panelPrincipal.getWidth();
int aDesk = panelPrincipal.getHeight();
int lIFrame = window1.getWidth();
int aIFrame = window1.getHeight();
window1.setLocation(lDesk / 2 - lIFrame / 2, aDesk / 2 - aIFrame / 2);
}
private void menuCityClicked(MouseEvent e) {
if (!city.isVisible()) {
panelPrincipal.add(city);
central(city);
city.requestFocus(); // Nothing
city.requestFocusInWindow(); // Nothing
city.setVisible(true);
city.requestFocus(); // Nothing
city.requestFocusInWindow(); // Nothing
}
}}
何があっても、メニューは常にフォーカスを維持します。たとえば、ブラウザのメニューをクリックすると、フォーカスが維持されます。カーソルを移動すると、クリックしなくても他のメニューが開きます。
プロパティ「selectionmodel」をnullに設定すると機能しますが、nullpointerexceptionを指定してください。