我正在开发一款带有“开始画面”框架的java游戏。在开始屏幕中,我有一个名为buttonLogin的按钮。按下buttonLogin后,将弹出LoginDialog类启动的登录对话框,询问您是否输入了用户名和密码。在对话框中有两个按钮,登录和取消。按下登录后,我的游戏将会打开,但开始屏幕仍然可见。
我的问题是我不知道如何在LoginDialog类的actionPerformed方法中编写代码来关闭现有的StartScreen窗口。
请记住,我在LoginDialog类而不是StartScreen类中编写。
答案 0 :(得分:1)
根据您要实现的目标,您可以使用setVisible
方法或dispose
方法。
如果需要,您只需将StartScreen
实例作为参数传递到LoginDialog
课程。
另一种方法是让您的LoginDialog
班级成为“登录后”行动的设定者。然后StartScreen
可以创建并设置一个处理开始屏幕的动作。
修改的
为了使'登录后'动作更加清晰,我的意思是
public class LoginDialog{
Action afterLoginAction;
public void setAfterLoginAction( Action action ){
afterLoginAction = action;
}
public void loginButtonPressed(){
//do your stuff
if ( afterLoginAction != null ){
afterLoginAction.actionPerformed( new ActionEvent( ... ) );
}
}
}
public class StartScreen extends JWindow{
public void showLoginScreen(){
LoginDialog loginDialog = new LoginDialog();
loginDialog.setAfterLoginAction( new Action(){
@Override
public void actionPerformed( ActionEvent e ){
StartScreen.this.dispose();
}
} );
loginDialog.setVisible( true );
}
}
答案 1 :(得分:0)
使用JDialog类的dispose();
方法