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 a JTabbedPane.
  • 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.

Ilias Tsagklis

Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to top button