import java.util.*; import java.util.zip.*; import java.util.List; import java.util.regex.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; import javax.swing.table.*; import java.io.*; import java.net.*; import java.lang.reflect.*; import java.lang.ref.*; import java.lang.management.*; import java.security.*; import java.security.spec.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.imageio.*; import java.math.*; import javax.swing.event.AncestorListener; import javax.swing.event.AncestorEvent; import javax.swing.Timer; public class main { static JFrame frame; public static void main(String[] args) throws Exception { frame = showCenterFrame("Green...", 200, 200, singleColorPanel(Color.GREEN)); swingAfter(frame, 5000, new Runnable() { public void run() { try { setFrameContents(frame, singleColorPanel(Color.BLUE)); setFrameTitle(frame, "Blue!"); } catch (Exception __e) { throw __e instanceof RuntimeException ? (RuntimeException) __e : new RuntimeException(__e); }}}); } static JComponent singleColorPanel(Color color) { JPanel p = new JPanel(); p.setOpaque(true); p.setBackground(color); return p; } static void swingAfter(JFrame base, int delay, Runnable r) { installTimer((JComponent) base.getContentPane(), r, delay, delay, false); } static void swingAfter(JComponent base, int delay, Runnable r) { installTimer(base, r, delay, delay, false); } static boolean setFrameTitle(Component c, String title) { JFrame f = getFrame(c); if (f == null) return false; f.setTitle(title); return true; } static void setFrameContents(JFrame frame, Component contents) { frame.getContentPane().removeAll(); frame.getContentPane().add(contents); revalidate(frame); } static JFrame showCenterFrame(String title, int w, int h, Component content) { JFrame frame = makeFrame(title, content); frame.setSize(w, h); return frame; } static void revalidate(JFrame frame) { // magic combo to actually relayout and repaint frame.revalidate(); frame.repaint(); } static JFrame makeFrame() { return makeFrame((Component) null); } static JFrame makeFrame(Component content) { // TODO: get program ID return makeFrame("A JavaX Frame", content); } static JFrame makeFrame(String title) { return makeFrame(title, null); } static JFrame makeFrame(String title, Component content) { JFrame frame = new JFrame(title); if (content != null) frame.getContentPane().add(content); frame.setBounds(300, 100, 500, 400); frame.setVisible(true); //exitOnFrameClose(frame); return frame; } static JFrame getFrame(Object o) { if (!(o instanceof Component)) return null; Component c = (Component) o; while (c != null) { if (c instanceof JFrame) return (JFrame) c; c = c.getParent(); } return null; } static void installTimer(final JComponent component, final Runnable r, final int delay) { installTimer(component, r, delay, delay); } static void installTimer(final JComponent component, final Runnable r, final int delay, final int firstDelay) { installTimer(component, r, delay, firstDelay, true); } static void installTimer(final JComponent component, final Runnable r, final int delay, final int firstDelay, final boolean repeats) { SwingUtilities.invokeLater(new Runnable() { public void run() { try { final Timer timer = new Timer(delay, new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent _evt) { r.run(); }}); timer.setInitialDelay(firstDelay); timer.setRepeats(repeats); if (component.isShowing()) timer.start(); component.addAncestorListener(new AncestorListener() { public void ancestorAdded(AncestorEvent event) { timer.start(); } public void ancestorRemoved(AncestorEvent event) { timer.stop(); } public void ancestorMoved(AncestorEvent event) { } }); } catch (Exception _e) { throw _e instanceof RuntimeException ? (RuntimeException) _e : new RuntimeException(_e); } } }); } }