Java 在关闭时调用DISPOSE\u时启动函数
所以我有两个jframe-J1和J2。通过单击J1上的按钮启动J2。此外,按下该按钮时,J1上的所有其他控件(JTextFields和JButtons等)都将被禁用。为了禁用所有控件,我们有一个名为DisableControls()的函数。按下J1上的按钮以启动J2时调用此功能 因此,当使用DISPOSE_ON_CLOSE关闭J2时,我们希望调用另一个函数EnableControls(),以便所有控件都回到启用状态 我的问题是-当用户按下J2上的关闭按钮时,是否有方法调用函数-EnableControls()Java 在关闭时调用DISPOSE\u时启动函数,java,swing,jframe,Java,Swing,Jframe,所以我有两个jframe-J1和J2。通过单击J1上的按钮启动J2。此外,按下该按钮时,J1上的所有其他控件(JTextFields和JButtons等)都将被禁用。为了禁用所有控件,我们有一个名为DisableControls()的函数。按下J1上的按钮以启动J2时调用此功能 因此,当使用DISPOSE_ON_CLOSE关闭J2时,我们希望调用另一个函数EnableControls(),以便所有控件都回到启用状态 我的问题是-当用户按下J2上的关闭按钮时,是否有方法调用函数-EnableCon
谢谢您可以使用
WindowListener
()检测关闭事件并调用您的函数:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//in J2 constructor
addWindowListener(
//WindowAdapter implements WindowListener and lets us only override the methods we need
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
//Call your function here
J1.EnableControls();
}
});
假设EnableControls
是为J1定义的方法,如果尚未在J2类中维护对J1的引用,则可能需要在J2类中维护对J1的引用
所以我有两个jframe-J1和J2。通过单击J1上的按钮启动J2。此外,按下该按钮时,J1上的所有其他控件(JTextFields和JButtons等)都将被禁用
不要使用两个框架。相反,第二个帧应该是模态JDialog,这样您就不必担心禁用父帧上的控件
见: