0

内部フレームを開くアイテムのメニューがありますが、フレーム内で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を指定してください。

4

1 に答える 1

0

問題はjMenuにありますが、jMenuItemは正常に機能するので...私は使用しています

于 2012-11-26T15:47:31.523 に答える