4

我想在 a 上方显示一个模式(进度)对话框Frame,即使那Frame不是活动窗口。但是,显示一个对话框会导致它或它的所有者成为活动窗口。有没有办法在没有它或其所有者成为活动窗口的情况下显示对话框 - 特别是在 Windows 平台上?

我想这样做的原因是:我会定期Frame刷新自己并在刷新时显示其模态进度对话框。现在我的应用程序只在它是活动窗口时刷新。

SSCCE,因为人们要求它:

Frame frame = new JFrame();
frame.setVisible( true );
// 30 seconds later (using a Timer/TimerTask)
Dialog dialog = new JDialog( frame, ModalityType.DOCUMENT_MODAL );
dialog.setVisible( true );
4

1 回答 1

3

我不认为你可以用模态对话框来做到这一点。

但是,以下适用于非模态对话框:

dialog.setFocusableWindowState( false );
dialog.setVisible(true);
dialog.setFocusableWindowState( true );

当对话框显示时,它不会有焦点,但如果你点击它,它将获得焦点。您可以在模态对话框中尝试此操作,看看会发生什么。

于 2013-06-19T01:34:22.823 回答