JTabbedPane
component tab layout policy of can be either set to JTabbedPane.SCROLL_TAB_LAYOUT
or JTabbedPane.WRAP_TAB_LAYOUT
. This layout policy will control the display of the tabs when the tabs cannot be displayed in one go. By the default the layout policy is set to JTabbedPane.WRAP_TAB_LAYOUT
. Changing tab layout policy to JTabbedPane.SCROLL_TAB_LAYOUT
makes the tabs scrollable. A button for scrolling left-right or up-down will be displayed in the tabbed pane.
package org.kodejava.swing;
import javax.swing.*;
import java.awt.*;
public class TabbedPaneTabLayoutPolicy extends JPanel {
public TabbedPaneTabLayoutPolicy() {
initializeUI();
}
public static void showFrame() {
JPanel panel = new TabbedPaneTabLayoutPolicy();
panel.setOpaque(true);
JFrame frame = new JFrame("TabbedPane Tab Layout Policy Demo");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setContentPane(panel);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(TabbedPaneTabLayoutPolicy::showFrame);
}
private void initializeUI() {
this.setLayout(new BorderLayout());
this.setPreferredSize(new Dimension(400, 200));
// Creates a JTabbedPane with scroll tab layout policy
JTabbedPane pane = new JTabbedPane(JTabbedPane.TOP,
JTabbedPane.SCROLL_TAB_LAYOUT);
pane.addTab("One", createPanel("One"));
pane.addTab("Two", createPanel("Two"));
pane.addTab("Three", createPanel("Three"));
pane.addTab("Four", createPanel("Four"));
pane.addTab("Five", createPanel("Five"));
pane.addTab("Six", createPanel("Six"));
pane.addTab("Seven", createPanel("Seven"));
pane.addTab("Eight", createPanel("Eight"));
pane.addTab("Nine", createPanel("Nine"));
pane.addTab("Ten", createPanel("Ten"));
this.add(pane, BorderLayout.CENTER);
}
private JPanel createPanel(String title) {
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(new JLabel(title), BorderLayout.NORTH);
return panel;
}
}
Here is the screenshot of the code snippet created above. You can see that a button at the top right of the tabbed pane is added so that you can scroll to navigate the hidden tabs.