1

我想以 2 到 3 秒的延迟处理我的第一帧,然后打开另一个帧。我可以使用 dispose() 方法处理帧,但我希望它至少延迟 2 秒。我该怎么做?下面是我处理框架的登录代码注意:我在 NetBeans 中使用 GUI builder 进行摇摆

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.. ");
        }
    }                               
4

1 回答 1

4

正确的解决方案是使用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();
于 2019-11-11T12:59:35.087 回答