Basics of GUI design

You will learn how to create various GUI components. First, you will need to instantiate a container for GUI elements and then put all necessary GUI components into this container. To add a swing component to your applet use the add() method of class Container. Use the method setLayout() to set up the layout of the GUI components.

Labels

To create a label use one of the following constructors:

Example:

GUIJava code
panel.setLayout(new GridLayout(3,1)); 
JLabel l = new JLabel("alignment left", SwingConstants.LEFT);
l.setFont(new Font("Helvetica", Font.BOLD, 14));
panel.add(l);
panel.add(new JLabel("alignment center", SwingConstants.CENTER));
panel.add(new JLabel("alignment right", SwingConstants.RIGHT));

The class JLabel has the following methods: getText(), setText(String), getAlignment(), setAlignment(int).


Buttons

To create a button use one of the following constructors:

Example:

GUIJava code
panel.setLayout(new FlowLayout());
panel.add(new JButton("Rewind"));
panel.add(new JButton("Play"));
panel.add(new JButton("Fast Forward"));
panel.add(new JButton("Stop"));

The class JButton has methods getText(), setText(String), setEditable(boolean), and addActionListener(ActionListener). The last method is used to add the functionality to the button.


Check Boxes

Check boxes can be used in two ways:

Non-exclusive check boxes can be created by using the Checkbox class:

Example:

GUIJava code
panel.setLayout(new FlowLayout(FlowLayout.LEFT));
panel.add(new JCheckBox("Shoes"));
panel.add(new JCheckBox("Socks"));
panel.add(new JCheckBox("Pants"));
panel.add(new JCheckBox("Underwear", true));
panel.add(new JCheckBox("Shirt"));

Supported methods of the class JCheckBox include: isSelected() (returns a boolean value depending on whether the check box is selected or not), setSelected(boolean), setLocation(), and setItemListener().


Radio Buttons

To create a series of radio buttons (JRadioButton), you will need to do the following:

Example:

GUIJava code
panel.setLayout(new FlowLayout(FlowLayout.LEFT));
JRadioButton b1 = new JRadioButton("Red", false);
JRadioButton b2 = new JRadioButton("Blue", false);
JRadioButton b3 = new JRadioButton("Yellow", false);
JRadioButton b4 = new JRadioButton("Green", true);
JRadioButton b5 = new JRadioButton("Orange", false);

ButtonGroup bgr = new ButtonGroup();
bgr.add(b1);
bgr.add(b2);
bgr.add(b3);
bgr.add(b4);
bgr.add(b5);

panel.add(b1);
panel.add(b2);
panel.add(b3);
panel.add(b4);
panel.add(b5);

Radio buttons support (among others) the same methods as check boxes.


Text Fields

Text fields provide an area where you can enter an edit a single line of text. To create a text field use one of the following constructors:

Example:

GUIJava code
panel.setLayout(new GridLayout(3,2));
panel.add(new JLabel("Your name:"));
panel.add(new JTextField("your name here", 30));
panel.add(new JLabel("Phone number:"));
panel.add(new JTextField(30));
panel.add(new JLabel("Password:"));

JPasswordField tf = new JPasswordField(30);
tf.setEchoChar('*');
panel.add(tf);

Methods of class JTextField include: setText(String), getText() (returns the text contained in the text field as a String), setEditable(boolean), and addActionListener.