如何在 Swing 延迟几秒后处理帧?
How do I dispose a frame after few seconds of delay in Swing?
我想延迟 2 到 3 秒处理我的第一帧,然后打开另一帧。我可以使用 dispose() 方法处理帧,但我希望它至少延迟 2 秒。我该怎么做?
下面是我处理框架的登录代码
注意:我在 NetBeans 中使用 GUI builder for swing
private void LoginActionPerformed(java.awt.event.ActionEvent evt) {
String userName = userField.getText();
String password = passField.getText();
if (userName.trim().equals("admin") && password.trim().equals("admin")) {
message.setForeground(Color.green);
message.setText(" Hello " + userName
+ "");
dispose();
Dashboard mydash = new Dashboard();
mydash.setVisible(true);
} else {
message.setForeground(Color.red);
message.setText(" Invalid user.. ");
}
}
正确的解决方案是使用 javax.swing.Timer
:
int delay = 3000;
Timer timer = new Timer( delay, new ActionListener(){
@Override
public void actionPerformed( ActionEvent e ){
yourFrame.dispose();
Dashboard mydash = new Dashboard();
mydash.setVisible(true);
}
});
timer.setRepeats(false);
timer.start();
我想延迟 2 到 3 秒处理我的第一帧,然后打开另一帧。我可以使用 dispose() 方法处理帧,但我希望它至少延迟 2 秒。我该怎么做? 下面是我处理框架的登录代码 注意:我在 NetBeans 中使用 GUI builder for swing
private void LoginActionPerformed(java.awt.event.ActionEvent evt) {
String userName = userField.getText();
String password = passField.getText();
if (userName.trim().equals("admin") && password.trim().equals("admin")) {
message.setForeground(Color.green);
message.setText(" Hello " + userName
+ "");
dispose();
Dashboard mydash = new Dashboard();
mydash.setVisible(true);
} else {
message.setForeground(Color.red);
message.setText(" Invalid user.. ");
}
}
正确的解决方案是使用 javax.swing.Timer
:
int delay = 3000;
Timer timer = new Timer( delay, new ActionListener(){
@Override
public void actionPerformed( ActionEvent e ){
yourFrame.dispose();
Dashboard mydash = new Dashboard();
mydash.setVisible(true);
}
});
timer.setRepeats(false);
timer.start();