如何在另一个JFrame运行时暂停JFrame

时间:2013-05-03 21:41:23

标签: java multithreading swing jframe wait

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

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

当我进入“捕获”部分时,我想暂停一下; “这个”是第一个JFrame,“jFrame1”是第二个。 一些提示/提示?

1 个答案:

答案 0 :(得分:5)

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

我们应该将此问题视为重复,因为这个完全相同的问题会一次又一次地被问到。