1

申し訳ありませんが、この質問はすでに行われていると思いますが、実際にはどの回答も役に立ちませんでした。私はGUIを備えたクラスを持っています、それはいくつかのテキストフィールドとボタンを持つJFrameを含んでいます。これが私が機能させようとしているmain()です:

Gui interface1 = new Gui();
interface1.setSize(200,200);
interface1.setVisible(true);
//hold main execution
//wait for the pressed button in gui
//close the jframe
//proceed with main()
call_some_functions();

デフォルトのクローズ操作をHIDE_ON_CLOSEに設定しようとしましたが、それは私が望むものではないようです。私はフレームワークを使用していて、main()がかなり長い間生きている必要があります。基本的に、ユーザー入力とパラメーターの更新の間、jframeがmain()を保持し、プロセスを終了せずにそれ自体を閉じて、何も起こらなかったかのようにmain()を続行する必要があります。助けてくれてありがとう。

4

2 に答える 2

5

JDialogの代わりにを使用しJFrameJDialogモーダルを作成し、JDialog#setModaltrue

詳細については、ダイアログの使用方法を参照してください。

于 2013-01-13T19:46:09.807 に答える
0

使用する :

frame.setDefaultCloseOperation(frame.HIDE_ON_CLOSE);

例えば:

import javax.swing.JFrame;
import javax.swing.JTextField;



public class TestFrame {
public static void main(String aa[])
{JFrame frame =new JFrame();
 JTextField field=new JTextField("hello buddy..nuthin happnd");
 frame.setDefaultCloseOperation(frame.HIDE_ON_CLOSE);
 frame.add(field);
 frame.pack();
 frame.setVisible(true);
 }

必要に応じて更新します。

import javax.swing.JFrame;
import javax.swing.JTextField;



public class TestFrame {
public static void main(String aa[])
{
JFrame frame =new JFrame();
JTextField field=new JTextField("hello buddy..nuthin happnd");
 frame.setDefaultCloseOperation(frame.HIDE_ON_CLOSE);
frame.add(field);
frame.pack();
frame.setVisible(true);


 frame. addComponentListener(new java.awt.event.ComponentAdapter() {
        public void componentHidden(java.awt.event.ComponentEvent evt) {
            formComponentHidden(evt);
        }
    });
 }

 private static void formComponentHidden(java.awt.event.ComponentEvent evt) {
   somefunction();
  }
 public static void somefunction()
 {
  System.out.println("hii!! i am hidden!!");

  }
 }
于 2013-01-13T19:46:44.520 に答える