2013-01-13 38 views
1

我很抱歉,因为我相信这个问题已经被问到了,但没有一个答案实际上帮了我的忙。 我有一个类gui,它包含一个带有几个文本框和按钮的JFrame。下面是主要的()我试图让工作:关闭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(),就好像什么都没有发生过一样。 在此先感谢您的帮助。

+0

退出JFrame中调用System.exit(0),这是不是我想要的。问题是,关闭JFrame后我怎么能调用__ __ function(),因为现在call_some_function()在JFrame弹出后立即执行。 – user1974708

+0

移动鼠标到windowListener标签,点击常见问题解答,你的问题是正确的,事件不清楚描述 – mKorbel

+0

我不能将main()中的所有东西都放到一些windowClosed(e)函数中,我需要main才能继续执行 – user1974708

回答

5

采用的是JDialog代替JFrame,使JDialog模式,使用JDialog#setModaltrue

How to use dialogs以获取更多信息

+1

我无法相信它那么简单。 interface1.setModal(true)就是答案。谢谢。 – user1974708

+0

+1不错,简单,可能使用JDialog更好,因为它似乎不是一个完整的UI –

+0

你是怎么知道用户想要什么的?原因是语言不是英语。 –

0

用途:

frame.setDefaultCloseOperation(frame.HIDE_ON_CLOSE); 

EG:

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); 
} 

UPDATE按您的需求:

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!!"); 

    } 
} 
+0

OP说:“我试图设置默认关闭操作HIDE_ON_CLOSE,但这似乎并不是我想要的。” – Pshemo

+0

在这种情况下,call_some_functions()在关闭JFrame之前执行。我需要JFrame关闭,然后继续与主。 – user1974708

+0

@Pshemo哦对不起,很快就会更新。 –

相关问题