Llamar a un JFrame desde otro usando el temporizador sin botones

Llamar a un JFrame desde otro utilizando el temporizador sin botones: el tiempo disminuye y luego abre otro JFrame sin botones. Por favor ayuda. Utilizado en netbeans

Su pregunta no está clara, pero no se recomienda el uso de varios marcos. Como alternativa, considere un diálogo no modal, que se muestra a continuación. El JOptionPane adjunto del diálogo escucha un PropertyChangeEvent , mientras se realiza una cuenta regresiva desde TIME_OUT usando javax.swing.Timer . El botón JOptionPane es conveniente pero no obligatorio .

enter image description here

 import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.Timer; /** * @see https://stackoverflow.com/a/12451673/230513 */ public class JOptionTimeTest implements ActionListener, PropertyChangeListener { private static final int TIME_OUT = 10; private int count = TIME_OUT; private final Timer timer = new Timer(1000, this); private JDialog dialog = new JDialog(); private final JOptionPane optPane = new JOptionPane(); public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { new JOptionTimeTest().createGUI(); } }); } private void createGUI() { JFrame frame = new JFrame("Title"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); timer.setCoalesce(false); optPane.setMessage(message()); optPane.setMessageType(JOptionPane.INFORMATION_MESSAGE); optPane.setOptionType(JOptionPane.DEFAULT_OPTION); optPane.addPropertyChangeListener(this); dialog.add(optPane); dialog.pack(); frame.add(new JLabel(frame.getTitle(), JLabel.CENTER)); frame.pack(); frame.setVisible(true); dialog.setLocationRelativeTo(frame); dialog.setVisible(true); timer.start(); } public void propertyChange(PropertyChangeEvent e) { String prop = e.getPropertyName(); if (JOptionPane.VALUE_PROPERTY.equals(prop)) { thatsAllFolks(); } } public void actionPerformed(ActionEvent e) { count--; optPane.setMessage(message()); if (count == 0) { thatsAllFolks(); } timer.restart(); } private String message() { return "Closing in " + count + " seconds."; } private void thatsAllFolks() { dialog.setVisible(false); dialog.dispatchEvent(new WindowEvent( dialog, WindowEvent.WINDOW_CLOSING)); } }