Swing: просто вызовите все, что вам обычно нужно для настройки GUI, но не вызывайте setVisible (true) на JFrame, пока вы не захотите отобразить его. Обратите внимание, что графический интерфейс пользователя должен быть создан на EDT, то есть с использованием SwingUtilities.invokeLater.