Java 如何将这些元素动态添加到JFrame中?

Java 如何将这些元素动态添加到JFrame中?,java,swing,jframe,awt,Java,Swing,Jframe,Awt,我将GUI/JFrame与Panel类分开,这样就可以使Swing组件远离其余代码。然而,我有一个按钮,我想在我从我的主类运行一个方法之前实时更新我的框架,但我无法让它工作。它看起来像(伪代码): 面板的其他元素显示得很好,但当我单击按钮时,什么也没有发生。在运行main.login()之前,如何使框架显示更新的面板?我尝试重新验证/重新绘制面板,但没有成功。您正在描述(J)Dialog.setModal()提供的功能。但是现在,一种更简单的方法是只使用JOptionPane Login l =

我将GUI/JFrame与Panel类分开,这样就可以使Swing组件远离其余代码。然而,我有一个按钮,我想在我从我的主类运行一个方法之前实时更新我的框架,但我无法让它工作。它看起来像(伪代码):


面板的其他元素显示得很好,但当我单击按钮时,什么也没有发生。在运行main.login()之前,如何使框架显示更新的面板?我尝试重新验证/重新绘制面板,但没有成功。

您正在描述(J)Dialog.setModal()提供的功能。但是现在,一种更简单的方法是只使用JOptionPane

Login l = new Login();
res = JOptionPane.showConfirmDialog(null, login, "login", JOptionPane.OK_CANCEL_OPTION);
if (res == JOptionPane.OK_OPTION) {
  ...
}

请不要发布伪代码,除非您有伪问题。最好发布一个功能正常的程序注意,事件驱动的GUI永远不应该有这样的代码:
while(login.shouldContinue){login.panel.revalidate()}
,因为它完全违背了事件驱动的范例。您可能希望维护某种类型的M-V-C结构。
Login l = new Login();
res = JOptionPane.showConfirmDialog(null, login, "login", JOptionPane.OK_CANCEL_OPTION);
if (res == JOptionPane.OK_OPTION) {
  ...
}