2012-05-07 12 views
2

Swingに基づいてアプリケーションを作成する際に問題を抱えています。JDialogの後にJButtonを2回クリックする必要があります

  1. JMenuにするJButtonと

JButtonのはのActionListenerとリンクされているのJLabelを含む

  • のJPanelを:私はで構成され、メインのJFrameを持っています。 JMenu(MenuListener)をクリックすると、何らかの形でJDialogが表示されます。問題は、JDialogを閉じたとき(dispose()またはshowVisible(false)のどちらで行っても差がない)、最初にトリガーする前にJButtonを2回クリックする必要があります。これからは通常、ワンクリックで動作します。

    JDialogが前面に表示されるたびに問題が表示されます。

    PS。 JDialogはモーダルに設定され、JFrameは親として設定されています。

  • +4

    提供された情報に基づいてどのようにお手伝いできるかわかりません。コードにバグがあり、デバッグを介してコードを分離してから、手助けをすることができます。 –

    +3

    すぐに役立つように、[SSCCE](http://sscce.org/)を投稿してください。 –

    答えて

    3

    フォーカスの問題のようです。

    最初のクリックはアプリにフォーカスを戻し、2番目のボタンはボタンをクリックします。通常、JDialogに間違った親があり、フォーカスを返すことができない場合、これを見てきました。

    1

    ありがとうございました。

    私はいくつかのコードを投稿することを検討しましたが、それは4つのクラスを含むので、かなり長くなります。

    私も前に焦点を絞ったことを試みましたが、何も助けてくれませんでした。興味深いのは、もし私がnew myDialog.showVisible(true)でJDialogを表示すると、それは私が記述したように振る舞います。しかし、私はこのような構成を使用する場合:それは正常に閉じ

    SwingUtilities.invokeLater(new Runnable() { 
    
         public void run() { 
          new JDialog.setVisible(true); 
         } 
        }); 
    

    と親フレームが応答する前にクリックする必要はありませんが、一方で表示されたダイアログがとても必要です。 Additonally、私は理解していない、ダイアログカーソルを開いた後、テキストフィールドに配置され、私は通常書くことができますが、私はダイアログ上で一度クリックする必要がありますいくつかのボタンをクリックするだけで、 。

    PS。 2番目のインクルードされた例のようにダイアログを閉じると、何も変わりません。

    関連する問題