Mega Code Archive

 
Categories / Java / Swing JFC
 

A quick demonstration of setting up an internal frame in an application

import java.awt.BorderLayout; import java.awt.Frame; import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JDesktopPane; import javax.swing.JInternalFrame; import javax.swing.JLayeredPane; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; public class SimpleInternalFrameDemo extends Frame {   JButton openButton, macButton, javaButton, motifButton, winButton;   JLayeredPane desktop;   JInternalFrame internalFrame;   public SimpleInternalFrameDemo() {     super("Internal Frame Demo");     setSize(500, 400);     openButton = new JButton("Open");     macButton = new JButton("Mac");     javaButton = new JButton("Metal");     motifButton = new JButton("Motif");     winButton = new JButton("Windows");     Panel p = new Panel();     p.add(openButton);     p.add(macButton);     p.add(javaButton);     p.add(motifButton);     p.add(winButton);     add(p, BorderLayout.SOUTH);     addWindowListener(new WindowAdapter() {       public void windowClosing(WindowEvent e) {         System.exit(0);       }     });     openButton.addActionListener(new OpenListener());     LnFListener lnf = new LnFListener(this);     macButton.addActionListener(lnf);     javaButton.addActionListener(lnf);     motifButton.addActionListener(lnf);     winButton.addActionListener(lnf);     // Set up the layered pane     desktop = new JDesktopPane();     desktop.setOpaque(true);     add(desktop, BorderLayout.CENTER);   }   // An inner class to handle presses of the Open button   class OpenListener implements ActionListener {     public void actionPerformed(ActionEvent e) {       if ((internalFrame == null) || (internalFrame.isClosed())) {         internalFrame = new JInternalFrame("Internal Frame", true, true, true, true);         internalFrame.setBounds(50, 50, 200, 100);         desktop.add(internalFrame, new Integer(1));         internalFrame.setVisible(true);       }     }   }   public static void main(String args[]) {     SimpleInternalFrameDemo sif = new SimpleInternalFrameDemo();     sif.setVisible(true);   } } class LnFListener implements ActionListener {   Frame frame;   public LnFListener(Frame f) {     frame = f;   }   public void actionPerformed(ActionEvent e) {     String lnfName = null;     if (e.getActionCommand().equals("Mac")) {       lnfName = "com.apple.mrj.swing.MacLookAndFeel";     } else if (e.getActionCommand().equals("Metal")) {       lnfName = "javax.swing.plaf.metal.MetalLookAndFeel";     } else if (e.getActionCommand().equals("Motif")) {       lnfName = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";     } else if (e.getActionCommand().equals("Windows")) {       lnfName = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";     } else {       System.err.println("Unrecognized L&F request action: " + e.getActionCommand());       return;     }     try {       UIManager.setLookAndFeel(lnfName);       SwingUtilities.updateComponentTreeUI(frame);     } catch (UnsupportedLookAndFeelException ex1) {       System.err.println("Unsupported LookAndFeel: " + lnfName);     } catch (ClassNotFoundException ex2) {       System.err.println("LookAndFeel class not found: " + lnfName);     } catch (InstantiationException ex3) {       System.err.println("Could not load LookAndFeel: " + lnfName);     } catch (IllegalAccessException ex4) {       System.err.println("Cannot use LookAndFeel: " + lnfName);     }   } }