diff --git a/jdk/src/share/demo/jfc/SwingApplet/SwingApplet.java b/jdk/src/share/demo/jfc/SwingApplet/SwingApplet.java index bc801a0b368..281ca709849 100644 --- a/jdk/src/share/demo/jfc/SwingApplet/SwingApplet.java +++ b/jdk/src/share/demo/jfc/SwingApplet/SwingApplet.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,42 +29,59 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* - */ -import java.awt.*; -import java.awt.event.*; -import java.net.*; -import java.applet.*; -import javax.swing.*; +import java.awt.FlowLayout; +import java.lang.reflect.InvocationTargetException; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.swing.JApplet; +import javax.swing.JButton; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; + /** * A very simple applet. */ +@SuppressWarnings("serial") public class SwingApplet extends JApplet { JButton button; - public void init() { - - // Force SwingApplet to come up in the System L&F - String laf = UIManager.getSystemLookAndFeelClassName(); + private void initUI() { + // Trying to set Nimbus look and feel try { - UIManager.setLookAndFeel(laf); - // If you want the Cross Platform L&F instead, comment out the above line and - // uncomment the following: - // UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); - } catch (UnsupportedLookAndFeelException exc) { - System.err.println("Warning: UnsupportedLookAndFeel: " + laf); - } catch (Exception exc) { - System.err.println("Error loading " + laf + ": " + exc); + UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel"); + } catch (Exception ex) { + Logger.getLogger(SwingApplet.class.getName()). + log(Level.SEVERE, "Failed to apply Nimbus look and feel", ex); } - getContentPane().setLayout(new FlowLayout()); button = new JButton("Hello, I'm a Swing Button!"); getContentPane().add(button); + getContentPane().doLayout(); } + @Override + public void init() { + try { + SwingUtilities.invokeAndWait(new Runnable() { + + @Override + public void run() { + initUI(); + } + }); + } catch (InterruptedException ex) { + Logger.getLogger(SwingApplet.class.getName()). + log(Level.SEVERE, null, ex); + } catch (InvocationTargetException ex) { + Logger.getLogger(SwingApplet.class.getName()). + log(Level.SEVERE, null, ex); + } + } + + @Override public void stop() { if (button != null) { getContentPane().remove(button);