dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: User Interface Design
Expertise: Beginner
Feb 5, 1999

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


Put a JTabbedPane on a Tab of a JTabbedPane

Question:
I want to put a JTabbedPane on a tab of another JTabbedPane for using it as a chapter with different sections below it. How can I do this?

Answer:
You can add a JTabbedPane to a tab of another JTabbedPane in the same way you would add any other component to a JTabbedPane. JTabbedPane offers several add and addTab methods that allow different levels of flexibility when adding components. Some of the methods allow you to specify specific layout constraints or add components to a specific tab. The easiest way to get started with JTabbedPane is by using add(String title, Component component). This method will add a new tab with the specified title and containing the indicated component. To add a JTabbedPane instance, just use it as the component parameter. User interface design is not my forte, but I have found it easier to navigate documentation by using a tree control on the side, allowing me to view the entire outline. Embedding a JTabbedPane inside of another JTabbedPane may not be the most effective approach. Nonetheless, this example demonstrates how to do it:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TabbedPaneDemo extends JFrame {
  JTabbedPane _parentTab, _childTab;

  public TabbedPaneDemo() {
    _parentTab = new JTabbedPane();

    _childTab = new JTabbedPane();
    _childTab.add("Section 1", new JLabel("in a galaxy"));
    _childTab.add("Section 2", new JLabel("far, far away ..."));
    _parentTab.add("Chapter 1", new JLabel("A long time ago"));
    _parentTab.add("Chapter 2", _childTab);

    getContentPane().add(_parentTab, BorderLayout.CENTER);
  }

  public static void main(String[] args) {
    Frame frame;
    WindowListener exitListener;

    exitListener = new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        Window window = e.getWindow();
        window.setVisible(false);
        window.dispose();
        System.exit(0);                
      }
    };

    frame = new TabbedPaneDemo();
    frame.addWindowListener(exitListener);
    frame.setSize(400, 400);
    frame.setVisible(true);
  }
}
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date