2013-05-03 48 views
0

我正在制作一个带有数据库的服务器,但是当我加载主JFrame并且正在连接到数据库时,将从.properties中读取用户名&的密码文件我选择让用户知道程序正在运行,程序在特定时刻正在执行什么操作,还可以让他创建一个.properties文件(如果它不存在(首次启动))。 问题是我需要创建2个jframes,1个显示启动进度,1个仅在用户需要创建.properties文件时出现:问题是我必须暂停第一个,而第二个运行,并在第二次关闭时重新开始运行,执行所有操作;我通过两种方式实现了它,但它不起作用:首先,我尝试插入一个wait()调用,在关闭它时打开第二个JFrame和一个notify()调用;第二,我尝试使用线程,但问题是,当它应该......这里的一些代码的线程,我停不启动:如何暂停JFrame而另一个正在运行

jFrame1.setBounds(0,0,500,500); 
    this.setVisible(true); 
    jProgressBar2.setValue(0); 
    prop = new Properties(); 
    jTextArea1.setText(jTextArea1.getText()+"Searching file config.properties... \n"); 
    try { 
     FileReader fr = new FileReader("config.properties"); 
     jProgressBar2.setValue(33); 
     jLabel3.setText("33"); 
     jTextArea1.setText(jTextArea1.getText()+"File config.properties found... \n"); 
    } catch (FileNotFoundException ex) { 
     jFrame1.setVisible(true); 
     jTextArea1.setText(jTextArea1.getText()+"File config.properties not found... \n"); 
    } 

我要暂停,而我ented“抓”节; “this”是第一个JFrame,“jFrame1”是第二个。 一些提示/提示?

+0

另请参见[使用多个JFrames,好/坏实践?](http://stackoverflow.com/a/9554657/418556) – 2013-05-04 01:33:18

回答

5

解决方案:不要使用多个JFrame。使窗口作为模态对话而不是第二个JFrame,而是一个真正的模态JDialog。

我们应该把这个问题作为一个重复来解决,因为这个问题一次又一次地被重复提出。

+0

我知道很多人都会问这个问题,但问题是我找到的答案不起作用:使用通用方法作为线程或等待它不起作用。我会寻找JDialog,但我宁愿选择2个不同的JFrame进行内部管理。 – tenik 2013-05-03 21:48:16

+0

@ user2346235:我很困惑。你对使用JDialog有什么异议? “内部管理”是什么意思? – 2013-05-03 21:52:23

+0

最简单的方法就是在'JOptionPane.showMessageDialog(null,contentPaneName,“标题在这里”,JOptionPane.PLAIN_MESSAGE)中传递一些内容窗格;'和瞧!它必须工作! – 2013-05-03 21:53:15

相关问题