Java Swing

This Java Swing tutorial will help you master Java GUI programming to build robust desktop applications.

Section 1. Getting started with Java Swing

Section 2. Layout managers

Swing provides various layout managers that allow you to arrange Swing components inside a container. The following section introduces the most commonly used Swing layouts, including BorderLayout, FlowLayout, GridLayout, GridBagLayout, and CardLayout

  • BorderLayout – divides a container into five regions: north, south, east, west, and center, allowing components to be added to these regions.
  • FlowLayout – arranges components in a left-to-right flow and wraps to the next row when the current row is full.
  • GridLayout – organizes components in a grid of rows and columns.
  • GridBagLayout – provides a flexible grid where you can place components in cells with different sizes and spans.
  • CardLayout – stacks components on top of each other, allowing only one component to be visible at a time.

Section 3. Buttons

Swing offers various types of buttons, including push buttons, toggle buttons, checkboxes, and radio buttons. Both push buttons and toggle buttons can display text, icons, or both. You will learn about each type of button in this section.

  • JButton – create a button that triggers an action when clicked or pushed.
  • JToggleButton – create a toggle button that can be toggled on and off, useful for binary choices.
  • JCheckBox – create a checkbox that allows users to check and uncheck.
  • JRadioButton – create a radio button that allows users to select only one option from a list of choices.

Section 4. List, ComboBox, and Spinners

Lists and combo boxes share similar characteristics, allowing users to make single or multiple choices. A spinner enables users to click and spin through a set of choices, one at a time.

  • JList – create a list component that allows users to select one or more items from a list of items.
  • JSpinner – provides a way for users to input a value by using an up/down button to increase or decrease the value.

Section 5. Bounded-range components

“The JScrollBar, JProgressBar, and JSlider components all use the same model called the bounded-range model. These components are often referred to as bounded-range components. In this section, we will delve into the details of the JScrollBar, JProgressBar, and JSlider components.

  • JScrollBar – provides a way to scroll through content such as text, images, or any other components.
  • JProgressBar – represents the processing of a task.
  • JSlider – allows you to select a value from a range by dragging a slider thumb along the track.

Section 6. Text components

Swing provides an extensive collection of classes, including JTextField, JTextArea, JPasswordField, and JEditorPane, for creating text fields in applications.

  • JTextField – is a single-line text input component that allows you to edit a single line of text.
  • JTextArea – multi-line text area where you can edit multiple lines of text.
  • JPasswordField – a specialized JTextField used for entering a password.
  • JEditorPane – represents a text component that can show both plain text and HTML content.

Section 7. Dialog boxes

Swing allows you to create various types of dialog boxes, ranging from simple dialogs with JOptionPane, JFileChooser, and JColorChooser to more complex ones like JDialog.

  • Dialog
  • JOptionPane – is a utility class that represents pre-configured dialog boxes for displaying messages, prompting users for input, or presenting other kinds of dialogs such as warning, input, and confirmation dialogs.
  • JFileChooser – is a component that allows users to navigate the file system to select files or directories.
  • JColorChooser – show a color palette.
  • JDialog – is a top-level container that represents a dialog box. Use for displaying modal or modeless dialogs that can contain other components such as input fields, buttons, or lists.

Section 8. Menu and Toolbar

Swing offers very user-friendly APIs for creating flexible popup menus. Additionally, Swing includes the JToolBar class, which enables the creation of toolbars. These toolbars can be used in conjunction with menus to provide users with shortcuts for commonly used menu items.

  • Menu – represents a drop-down menu containing a list of items.
  • Popup Menu – is a popup menu that appears when a user right-clicks.
  • JToolBar – represents horizontal or toolbars.

Section 9. Java Swing table

Swing offers a JTable API for representing data in tabular format.

  • JTable – visually displays various data sets such as database records, stock quotes, and sales data. Additionally, the JTable component allows you to create editable fields embedded inside its cells.