Java: Summary - GUI Containers

Top-level Container: javax.swing.JFrame

JFrame - window, typically subclassed
w = new JFrame(); Constructor
w = new JFrame(t); Constructor. Sets titlebar to t.
w.setTitle(t); Sets titlebar text to t
w.setDefaultCloseOperation(opt); JFrame.EXIT_ON_CLOSE terminates program when close box clicked.
w.setVisible(true/false); Make visible (and start GUI thread) or hide.
w.pack(); Calculates layout on all inner containers and sets size of JFrame.
w.setContentPane(cont); Sets the content pane - common to pass a JPanel here.
cont = w.getContentPane(); Returns the window's content pane.
w.setJMenuBar(mb); Adds a JMenuBar.
w.setResizable(false); Prevent user from resizing window.
w.setLocation(x, y); Positions window's top left corner at screen coordinates (x, y).
w.setSize(w, h); Sets window size, but use layouts and pack() instead.; Deprecated. Use w.setVisible(true).
w.hide(); Deprecated. Use w.setVisible(false).

Top-level Containers: Dialogs: JOptionPane, JFileChooser, JColorChooser, JDialog

JOptionPane - Commonly used to create dialogs.

Low-level Container supporting layouts - JPanel

JPanel - Set layout and add components to JPanel.
p = new JPanel(); Creates new JPanel
p.setLayout(layout); Sets the panel's layout.
p.add(widget); Add widget to next position - FlowLayout, GridLayout, BoxLayout.
p.add(widget, constraint); Add widget at position constraint = BorderLayout, GridbagLayout).

Low-level Containers - special purpose - JSrollPane, JTabbedPane

JScrollPane - Holds textarea, list, (or large images in label) and adds scroll bars as necessary.
scr = new JScrollPane(textarea); Surrounds textarea with scrollbars as needed.
JTabbedPane - Display tabs to allow user to select one of many panels.
tp = new JTabbledPane(); Constructor. Creates new tabbed pane.
tp = new JTabbledPane(place); Constructor. placement is JTabbedPane.TOP (default), BOTTOM, LEFT, or RIGHT.
tp = new JTabbledPane(place, ovrfl); Constructor. ovrfl tells what to do if too many tabs: JTabbedPane.WRAP_TAB_LAYOUT or .SCROLL_TAB_LAYOUT.
tp.addTab(title, comp); Adds tab labelled with string title which displays comp (usually JPanel).
tp.addTab(title, icon, comp); Used string and icon for tab label.

Copyleft 2005 Fred Swartz