The components at the top of any Swing containment hierarchy.
JApplet | JDialog | JFrame |
![]() |
Intermediate containers that can be used under many different circumstances.
JPanel | JScrollPane | JSplitPane |
![]() |
![]() |
JTabbedPane | Box | |
![]() |
Intermediate containers that play specific roles in the UI.
JInternalFrame | JLayeredPane | JRootPane |
JToolBar | JDeskTopPane | |
![]() |
Regular components that exist primarily to get input from the user; they generally also show simple state.
JButtons | JComboBox | JList |
![]() |
![]() |
![]() |
JMenu | JSlider | JTextField |
![]() |
![]() |
![]() |
JCheckBox | ||
Regular components that exist solely to give the user information.
JLabel | JProgressBar | JToolTip |
![]() |
![]() |
![]() |
Regular components that display highly formatted information that (if you choose) can be edited by the user.
JColorChooser | JFileChooser | JTable |
![]() |
JText | JTree | |
![]() |
![]() |
Intended to be a Messy Example for learning ...
//import com.sun.java.swing.*; //Used by JDK 1.2 Beta 4 and all //Swing releases before Swing 1.1 Beta 3. import javax.swing.*; //This is the final real package name. import javax.swing.text.*; import javax.swing.event.*; import javax.swing.undo.*; import java.awt.*; //The awt event model are still valid import java.awt.event.*; import java.io.IOException; public class SPbook { private String newline = System.getProperty("line.separator"); private JFrame frame; private JLabel label; private String infoStr; // Buttons private JButton addButton; private JButton deleteButton; private JButton prevButton; private JButton nextButton; private JButton openButton; private JButton saveButton; private JButton finishButton; final JTextArea textarea = new JTextArea(22, 40); private JComboBox statusList; JTextPane textPane = new JTextPane(); // Textfields private JTextField nameField, phoneField, namefField, addr1Field, addr2Field, cityField, stateField, zipField, emailField, urlField; private static String labelPrefix = " Total: "; /* * Utility function for adding GridBag */ private void gAdd(JComponent p, JComponent c, GridBagConstraints gbc, int x, int y, int w, int h) {
// ... some coding in here ... } /* * Create my label */ private JLabel myLabel(String lstr) { JLabel label = new JLabel(lstr); Font f = new Font("ScansSerif", Font.BOLD | Font.ITALIC, 14); label.setFont(f); return label; } /* * Routine to setup UI components */ private void spbInit() { // Choice for combo box String[] statusStrings = { "Work Full Time", "Senior", "Junior", "Sophmore", "Freshmen", "CS Grad", "Other Grad" }; // Create the combo box and default to Senior statusList = new JComboBox(statusStrings); statusList.setSelectedIndex(1); // statusList.addActionListener(this); // Create the top-level container. frame = new JFrame("Swing Info Book Main Frame"); // // Buttons code // // Add addButton = new JButton("Add", new ImageIcon("bPenIcon.gif")); addButton.setMnemonic('a'); // Setup the label label = new JLabel(labelPrefix + "0 "); label.setLabelFor(addButton); // Create the action listenser SPbActionChanger sac = new SPbActionChanger(label); addButton.addActionListener(sac); // Delete deleteButton = new JButton( "Delete"); deleteButton.setMnemonic('d'); // Prev prevButton = new JButton( " Prev "); prevButton.setMnemonic('p'); // Next nextButton = new JButton( " Next "); nextButton.setMnemonic('n'); // Open openButton = new JButton( " Open "); openButton.setMnemonic('o'); // Save saveButton = new JButton( " Save "); saveButton.setMnemonic('s'); // Init the record information nameField = new JTextField(); phoneField = new JTextField(); namefField = new JTextField(); addr1Field = new JTextField(); addr2Field = new JTextField(); cityField = new JTextField(); stateField = new JTextField(); zipField = new JTextField(); emailField = new JTextField(); urlField = new JTextField(); JPanel p = new JPanel(); GridBagLayout gbl = new GridBagLayout(); p.setLayout(gbl); GridBagConstraints gbc = new GridBagConstraints(); gbc.fill = GridBagConstraints.HORIZONTAL; gbc.anchor = GridBagConstraints.WEST; gbc.weightx = 10; gbc.weighty = 10; JComponent c; /* * Set the GridBagConstraints for each of the elements * display in the applet */ // Set the First name gAdd(p, myLabel(" First name"), gbc, 0, 0, 1, 1); gAdd(p, namefField, gbc, 1, 0, 2, 1); // Set the Last name gAdd(p, myLabel(" Last name"), gbc, 0, 1, 1, 1); gAdd(p, nameField, gbc, 1, 1, 2, 1); // Status gAdd(p, myLabel(" Status "), gbc, 0, 2, 1, 1); gAdd(p, statusList, gbc, 1, 2, 1, 1); // Email gAdd(p, myLabel(" Email "), gbc, 0, 3, 1, 1); gAdd(p, emailField, gbc, 1, 3, 1, 1); // URL gAdd(p, myLabel(" URL "), gbc, 0, 4, 1, 1); gAdd(p, urlField, gbc, 1, 4, 2, 1); // Set for phone number gAdd(p, myLabel(" Phone"), gbc, 0, 5, 1, 1); gAdd(p, phoneField, gbc, 1, 5, 1, 1); // Address gAdd(p, myLabel(" Address "), gbc, 0, 6, 1, 1); gAdd(p, addr1Field, gbc, 1, 6, 3, 1); // Street Address2 gAdd(p, myLabel(" "), gbc, 0, 7, 1, 1); gAdd(p, addr2Field, gbc, 1, 7, 3, 1); // City gAdd(p, myLabel(" City "), gbc, 0, 8, 1, 1); gAdd(p, cityField, gbc, 1, 8, 1, 1); // State and ZIP gAdd(p, myLabel(" State"), gbc, 0, 9, 1, 1); gAdd(p, stateField, gbc, 1, 9, 1, 1); gAdd(p, myLabel(" Zip"), gbc, 2, 9, 1, 1); gAdd(p, zipField, gbc, 3, 9, 1, 1); gAdd(p, label, gbc, 0, 14, 3, 1); // Set for Buttons gbc.fill = GridBagConstraints.BOTH; gAdd(p, addButton, gbc, 0, 15, 1, 1); gAdd(p, deleteButton, gbc, 1, 15, 1, 1); gAdd(p, prevButton, gbc, 2, 15, 1, 1); gAdd(p, nextButton, gbc, 3, 15, 1, 1); /* * Create the tabbed pane */ Container contents = frame.getContentPane(); JTabbedPane jtp = new JTabbedPane(); // Set border for top, left, bottom, right jtp.setBorder(BorderFactory.createEmptyBorder(0, 3, 3, 3)); jtp.addTab(" Main Info ", p); jtp.addTab(" Computer Background ", myUndoTPane()); jtp.addTab(" Expectation ", myEditTextPane()); jtp.addTab(" Finish-> ", myFinishPane()); contents.add(jtp); //Finish setting up the frame, and show it. frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.setSize(500, 500); frame.setVisible(true); } /* * This is the main constructor for setting up all the components */ public SPbook() { spbInit(); } /* * Main line of this program */ public static void main(String[] args) { /* * Set the UI component look and feel */ try { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); } catch (Exception e) { // Skip the exception and just get out for this sample program } new SPbook(); //Create and show the GUI. } }