【问题标题】:How to wait for a JFrame to close before continuing?如何在继续之前等待 JFrame 关闭?
【发布时间】:2012-09-09 01:04:29
【问题描述】:

我的程序由 3 个主要“部分”组成。主要功能,登录表单和应用程序表单。主要功能应该是这样的:打开登录表单,等待它关闭,然后打开应用程序表单。我无法让等待部分工作,或者更确切地说,我不知道该怎么做。

有人告诉我改用 JDialog 并使用 setModal(true),但是使用这种方法,登录表单不会出现在任务栏上,这在我看来很糟糕。

我考虑的另一件事是在登录关闭后从内部打开应用程序,但这感觉像是糟糕的设计,因为这会使登录表单不可重用。

那么,请问您有什么建议?

【问题讨论】:

  • 为什么登录必须出现在任务栏上,因为主应用程序会在那里,并且您不希望单个程序有多个任务栏项目。您最好的选择是使用模态 JDialog。
  • 我在登录关闭后将其丢弃,因此每次只有一个。
  • 向用户扔一堆窗口可能并不“有趣”。查看 CardLayout。
  • 我已经开始使用 MigLayout。认为布局无关紧要。
  • 您误解了重点。 CardLayout 不是通常意义上的布局。请查看教程。我在答案中添加了 tut 的链接。

标签: java swing user-interface jdialog cardlayout


【解决方案1】:
  • 为什么登录必须出现在任务栏上,因为主应用程序会在那里,并且您不希望单个程序有多个任务栏项目。您最好的选择可能是使用模态 JDialog。
  • 另一种选择是使用CardLayout 交换“视图”。
  • 第三种选择是使用 JFrame,如果您必须附加一个侦听器(我相信是 WindowListener)来响应其关闭事件。
  • 无论您走哪条路线,您的登录 gui 都应该是一个 JPanel,以便您可以将其放置在您希望的任何位置,然后再改变主意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多