Hey there! I’m a supplier in the Swing game, and I often get asked about how to add menu items to a menu in Swing. It’s a pretty common question among developers, whether you’re just starting out or you’re looking to spruce up an existing application. So, I thought I’d share some tips and tricks on this topic. Swing

First off, let’s talk a bit about Swing. Swing is a set of GUI (Graphical User Interface) components for Java. It’s super flexible and allows you to create all sorts of cool interfaces. Menus are a big part of many applications, as they give users an easy way to access different functions. Adding menu items to a menu in Swing isn’t as hard as it might seem at first, but there are a few things you need to know to do it right.
Getting Started
The first thing you need to do is have a basic understanding of the Swing components involved in creating a menu. There are three main components: JMenuBar, JMenu, and JMenuItem.
- JMenuBar: This is like the base of your menu system. It’s a container that holds one or more
JMenucomponents. You usually add it to the top of your application window. - JMenu: These are the main menu items that you see in the menu bar, like "File", "Edit", or "View". A
JMenucan contain one or moreJMenuItemcomponents. - JMenuItem: These are the individual items within a
JMenu. For example, in the "File" menu, you might have items like "Open", "Save", and "Exit".
Here’s a simple example of how to create a basic menu bar with a menu and a menu item in Java code:
import javax.swing.*;
import java.awt.*;
public class SwingMenuExample extends JFrame {
public SwingMenuExample() {
// Create a menu bar
JMenuBar menuBar = new JMenuBar();
// Create a menu
JMenu fileMenu = new JMenu("File");
// Create a menu item
JMenuItem openMenuItem = new JMenuItem("Open");
// Add the menu item to the menu
fileMenu.add(openMenuItem);
// Add the menu to the menu bar
menuBar.add(fileMenu);
// Set the menu bar for the frame
setJMenuBar(menuBar);
// Set some basic frame properties
setTitle("Swing Menu Example");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(SwingMenuExample::new);
}
}
In this code, we first create a JMenuBar. Then we create a JMenu called "File". After that, we create a JMenuItem called "Open" and add it to the "File" menu. Finally, we add the "File" menu to the menu bar and set the menu bar for the frame.
Adding More Menu Items
Adding more menu items is pretty straightforward. You just create new JMenuItem objects and add them to the appropriate JMenu. Here’s an updated version of the previous example with a few more menu items:
import javax.swing.*;
import java.awt.*;
public class SwingMenuExample extends JFrame {
public SwingMenuExample() {
// Create a menu bar
JMenuBar menuBar = new JMenuBar();
// Create a menu
JMenu fileMenu = new JMenu("File");
// Create menu items
JMenuItem openMenuItem = new JMenuItem("Open");
JMenuItem saveMenuItem = new JMenuItem("Save");
JMenuItem exitMenuItem = new JMenuItem("Exit");
// Add the menu items to the menu
fileMenu.add(openMenuItem);
fileMenu.add(saveMenuItem);
fileMenu.add(exitMenuItem);
// Add the menu to the menu bar
menuBar.add(fileMenu);
// Set the menu bar for the frame
setJMenuBar(menuBar);
// Set some basic frame properties
setTitle("Swing Menu Example");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(SwingMenuExample::new);
}
}
As you can see, we just created two more JMenuItem objects (saveMenuItem and exitMenuItem) and added them to the "File" menu.
Adding Separators
Sometimes, you might want to group related menu items together. You can do this by adding separators between them. In Swing, you can use the addSeparator() method of the JMenu class. Here’s an example:
import javax.swing.*;
import java.awt.*;
public class SwingMenuExample extends JFrame {
public SwingMenuExample() {
// Create a menu bar
JMenuBar menuBar = new JMenuBar();
// Create a menu
JMenu fileMenu = new JMenu("File");
// Create menu items
JMenuItem openMenuItem = new JMenuItem("Open");
JMenuItem saveMenuItem = new JMenuItem("Save");
// Add a separator
fileMenu.addSeparator();
JMenuItem exitMenuItem = new JMenuItem("Exit");
// Add the menu items to the menu
fileMenu.add(openMenuItem);
fileMenu.add(saveMenuItem);
fileMenu.add(exitMenuItem);
// Add the menu to the menu bar
menuBar.add(fileMenu);
// Set the menu bar for the frame
setJMenuBar(menuBar);
// Set some basic frame properties
setTitle("Swing Menu Example");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(SwingMenuExample::new);
}
}
In this example, we added a separator between the "Save" and "Exit" menu items using the addSeparator() method.
Handling Menu Item Events
Of course, just having menu items isn’t very useful if they don’t do anything. You need to handle the events that are generated when the user clicks on a menu item. You can do this by adding an ActionListener to each JMenuItem. Here’s an example:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SwingMenuExample extends JFrame {
public SwingMenuExample() {
// Create a menu bar
JMenuBar menuBar = new JMenuBar();
// Create a menu
JMenu fileMenu = new JMenu("File");
// Create a menu item
JMenuItem openMenuItem = new JMenuItem("Open");
openMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(SwingMenuExample.this, "You clicked the Open menu item!");
}
});
// Add the menu item to the menu
fileMenu.add(openMenuItem);
// Add the menu to the menu bar
menuBar.add(fileMenu);
// Set the menu bar for the frame
setJMenuBar(menuBar);
// Set some basic frame properties
setTitle("Swing Menu Example");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(SwingMenuExample::new);
}
}
In this example, we added an ActionListener to the "Open" menu item. When the user clicks on the "Open" menu item, a message dialog will appear saying "You clicked the Open menu item!".
Submenus
You can also create submenus in Swing. A submenu is just another JMenu that is added to a JMenuItem. Here’s an example:
import javax.swing.*;
import java.awt.*;
public class SwingMenuExample extends JFrame {
public SwingMenuExample() {
// Create a menu bar
JMenuBar menuBar = new JMenuBar();
// Create a main menu
JMenu fileMenu = new JMenu("File");
// Create a submenu
JMenu importMenu = new JMenu("Import");
// Create menu items for the submenu
JMenuItem importTextMenuItem = new JMenuItem("Import Text");
JMenuItem importImageMenuItem = new JMenuItem("Import Image");
// Add the menu items to the submenu
importMenu.add(importTextMenuItem);
importMenu.add(importImageMenuItem);
// Add the submenu to the main menu as a menu item
fileMenu.add(importMenu);
// Add the main menu to the menu bar
menuBar.add(fileMenu);
// Set the menu bar for the frame
setJMenuBar(menuBar);
// Set some basic frame properties
setTitle("Swing Menu Example");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(SwingMenuExample::new);
}
}
In this example, we created a submenu called "Import" and added two menu items to it. Then we added the submenu to the "File" menu as a menu item.
Conclusion

Adding menu items to a menu in Swing is a fundamental skill for Java developers who want to create user-friendly applications. By understanding the basic components (JMenuBar, JMenu, and JMenuItem), adding separators, handling events, and creating submenus, you can build complex and intuitive menu systems.
Swing Accessories If you’re working on a project and need some high-quality Swing components or have any questions about Swing development, feel free to reach out. I’m here to help you make your application shine with great menus and interfaces. Let’s start a conversation about your procurement needs and see how we can work together to achieve your goals!
References
- Horstmann, Cay S., and Gary Cornell. Core Java, Volume I – Fundamentals. Pearson, 2020.
- Liang, Y. Daniel. Introduction to Java Programming, Comprehensive Version. Pearson, 2020.
Pujiang Shenli Chain Co., Ltd.
We’re well-known as one of the most experienced swing suppliers in China, featured by quality products and low price. Please feel free to buy discount swing made in China here from our factory. Contact us for more details.
Address: No. 18, Zaifeng Road, Pujiang County, Zhejiang Province
E-mail: Chen@shenlichain.com
WebSite: https://www.chainshenli.com/