2016-07-29 9 views
0

私のプロジェクトには2つのフレームがあります.1つはメインフレームで、2番目のフレームはボタンをクリックすると表示されるフレームです。JFrameを常に上に設定し、その背後にあるすべてのJFrameを無効にします。

ボタンがクリックされているときにjframe.classを表示します。ここ

このコードは動作しますが、問題は、第二のフレームが表示されている間、私は、メインフレームの無効化またはunclickableをしたいです

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
     jframe jf = new jframe(); 
      jf.setVisible(true); 
      jf.setAlwaysOnTop(true); 
    } 

を行って、私のボタンアクションで私のコードです...

JOptionPaneと同じコンセプトを実行できますか?

+2

を参照[複数JFramesの使用は、良い/悪い練習?](http://stackoverflow.com/q/9554636/418556) –

答えて

6

あなたは基本的にモーダルについて話しています。あなたは、引数としてのJFrameを通過させながらJDialogのを使用してtrueにモダリティを設定する必要があります。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){ 
    myFrame = new JFrame("Hello World"); 
    modal = new JDialog(myFrame, "This is a modal!", true); 
    modal.setVisible(true); 
    modal.setLocationRelativeTo(null); //Center the modal 
} 

あなたはより多くのドキュメントをここで見つけることができます。

https://docs.oracle.com/javase/tutorial/uiswing/misc/modality.html

+0

多分私の質問は理解して悪いです...ごめんなさい... –

+0

多分あなたは答えを理解していないが、それはこの要件のために多くの人々が与えるものと同じです。それは明らかなフィット感です。あなたがコメントで提供したリンクをたどった場合は、(他の多くの可能性の中で)モーダルダイアログも挙げられます。 –

+0

本当に私はメインのjframeを持っていて、マウスが動いていなければ自動的にログインフォームを表示し、メインのjframeを無効にします。あなたが私の言いたいことを理解して欲しいです..私の悪い英語のために申し訳ありません:-) –

関連する問題