JTabbedPane
Enable scrolling tabs in JTabbedPane
With this example we shall show you how to enable scrolling in a JTabbedPane
component of a Java Desktop Application.
In order to do that you just have to follow these steps:
- Create a new
JFrame
. - Call
frame.getContentPane().setLayout(new GridLayout(1, 1)
to set up grid layout for the frame. - Use
JTabbedPane(JTabbedPane.TOP)
to get aJTabbedPane
. - Use
tabbedPane.addTab
to add a tab. - Use
tabbedPane.getTabRunCount()
to get the number of tabs. - Use tabbedPane.getTabLayoutPolicy() to get the current tab layout policy
- Use
tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT)
to set policy so that the tabs will scroll.
Let’s see the code:
package com.javacodegeeks.snippets.desktop; import java.awt.GridLayout; import java.awt.Label; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTabbedPane; public class EnableScrollingTabsInJTabbedPane { private static void createAndShowGUI() { // Create and set up the window. final JFrame frame = new JFrame("Tabbed Pane Example"); // Display the window. frame.setSize(200, 200); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // set grid layout for the frame frame.getContentPane().setLayout(new GridLayout(1, 1)); JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); tabbedPane.addTab("Tab1", makePanel("This is tab 1")); tabbedPane.addTab("Tab2", makePanel("This is tab 2")); tabbedPane.addTab("Tab3", makePanel("This is tab 3")); tabbedPane.addTab("Tab4", makePanel("This is tab 4")); tabbedPane.addTab("Tab5", makePanel("This is tab 5")); // get the number of tab runs currently used to display the tabs int tabRuns = tabbedPane.getTabRunCount(); System.out.println("TabRuns:" + tabRuns); // get the current tab layout policy int policy = tabbedPane.getTabLayoutPolicy(); System.out.println("Default Policy:" + policy); // set policy so that the tabs will scroll tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); policy = tabbedPane.getTabLayoutPolicy(); System.out.println("New Policy:" + policy); frame.getContentPane().add(tabbedPane); } private static JPanel makePanel(String text) { JPanel p = new JPanel(); p.add(new Label(text)); p.setLayout(new GridLayout(1, 1)); return p; } public static void main(String[] args) { //Schedule a job for the event-dispatching thread: //creating and showing this application's GUI. javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } }
This was an example on how to enable scrolling tabs in JTabbedPane.