Java JDilaog - 使其成为模态但非阻塞

时间:2015-07-30 13:51:32

标签: java modal-dialog blocking jdialog

我正在尝试使用弹出式登录框创建登录系统,我希望用户在执行任何其他操作之前必须输入其凭据(或单击取消)。不幸的是,将modal设置为True然后使用setVisible()调用该框将导致该对话框阻止任何底层线程。这是不利的,因为它们可能是某种底层数据集合,应该在登录过程中继续运行。有没有办法让登录框模态和&没有创建任何其他线程的非阻塞?

编辑:根据要求,这是演示应用程序中的一些代码:

loginButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            login.showLogin();
            if (login.isLoggedIn()) {
                loginButton.setEnabled(false);
            }

            if (!logoutButton.isEnabled()) {
                logoutButton.setEnabled(true);
            }
        }
    });

showLogin()方法只是对setVisible()的调用。用户输入用户名和密码后,机制会检查用户是否使用isLoggedIn()方法成功登录。如果调用是非阻塞的,则此代码将直接运行,而无需先等待对用户进行身份验证。我甚至在IntelliJ调试器中检查过它,if语句在用户点击登录或取消之前不会执行。

0 个答案:

没有答案