Java tutorial
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.Timer; public class Main { public static void main(String[] args) { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton button = new JButton("Bring me to top after 3 seconds"); button.addActionListener(e -> triggerBringToFront(f, 3000)); f.getContentPane().add(button); f.pack(); f.setVisible(true); } private static void triggerBringToFront(final JFrame f, final int delayMS) { Timer timer = new Timer(delayMS, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // This will only cause the task bar entry // for this frame to blink // f.toFront(); // This will bring the window to the front, // but not make it the "active" one // f.setAlwaysOnTop(true); // f.setAlwaysOnTop(false); if (!f.isActive()) { f.setState(JFrame.ICONIFIED); f.setState(JFrame.NORMAL); } } }); timer.setRepeats(false); timer.start(); } }