Java Swing Components
Tags: java
Published: 2023-01-06 02:48:58

---
title: Java Swing Components
published: true
date: 2017-06-05 23:30:18 UTC
tags: Java
canonical_url: https://brandonrozek.com/blog/2017-06-05-java-swing-components/
---

This post, over time, will serve as a reference to myself and others of the different UI components available in the Swing library. This post assumes a general familiarity with setting up a basic Swing application and focuses only on the individual components.

### Buttons

Buttons are created using the JButton component. The constructor takes the text placed inside the button.

<!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML omitted -->

You can also add images inside a button. To do that you need to get the image and make it into an icon. The following code grabs the image file “smallpanda.jpg” from the current working directory.

<!-- raw HTML omitted --><!-- raw HTML omitted -->

Sometimes, you want to change the location of the text in the button. Like say, we want to place the text in the center horizontally and bottom vertically.

<!-- raw HTML omitted --><!-- raw HTML omitted -->

Don’t forget to add your buttons to the screen!

<!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML omitted -->
### Labels and Textfields

One of the most common forms of input is a text field, usually distinguished with a label. Those components are called JTextField and JLabel respectively. The constructor for JTextArea can take just the width of the text field, or another common use is to have already inputed text and its width.

<!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML omitted -->
### Checkboxes

Checkboxes are commonly used when giving the possibility for multiple answers. Such as, check all of the foods that you like.

<!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML omitted -->

You can even replace the default look of the checkbox with an image. To do this, you need to make image icons for both when it’s checked and when it’s unchecked.

<!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML omitted -->
### Text Areas

Text Areas are different from text fields in which it is made to be able to hold multiple lines of text. It’s called JTextArea and its construction takes a width and height as it’s arguments.

<!-- raw HTML omitted --><!-- raw HTML omitted -->

By default, when the someone inputs more text than the size can hold, it will automatically grow with the text inputted. To override this behaviour and instead introuduce scroll bars. One must define a ScrollPane and put the TextArea inside of it by using it as the scroll pane’s argument for its constructor.

<!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML omitted -->
### Radio Buttons

Radio buttons are used for when you only want one out of many different options to be selected. For this, one needs to define a button group that houses the radio buttons for the user to choose from. This can be achieved with ButtonGroup and JRadioButton respectively.

<!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML omitted -->
### JList

To display a list of items that are clickable by the user, you can use a `JList`. JLists require a model that stores the list implementation, we’ll use `DefaultListModel` to achieve this purpose.

<!-- raw HTML omitted --><!-- raw HTML omitted -->

To add scrolling capabilities, remember to add it to a scroll pane

<!-- raw HTML omitted --><!-- raw HTML omitted -->

You can set the number of items you wish to see in the list. The example below, allows us to see three items in the list.

<!-- raw HTML omitted --><!-- raw HTML omitted -->

There are a variety of ways to add items to the list. If a number is specified that tells it to place it at the index specified. Starting from the top at zero, to the button.

<!-- raw HTML omitted --><!-- raw HTML omitted -->

Sometimes, you want to only let the user select one item. At the end, don’t forget to add the component to the screen!

<!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML omitted -->
### JComboBox

To create a dropdown list of different options, consider using a JComboBox.

<!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML omitted -->