Java/Swing Components/Dockable

Материал из Java эксперт
Перейти к: навигация, поиск

Add border for dockable component

   <source lang="java">

package net.eleritec.docking.demos.border; import java.awt.BorderLayout; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JSplitPane; import javax.swing.plaf.basic.BasicSplitPaneDivider; import javax.swing.plaf.basic.BasicSplitPaneUI; import net.eleritec.docking.DockingPort; import net.eleritec.docking.defaults.ruponentProviderAdapter; import net.eleritec.docking.defaults.DefaultDockingPort; public class BorderDemo extends JFrame {

 public BorderDemo() {
   super("Border Docking Demo");
   setContentPane(createContentPane());
 }
 
 private JPanel createContentPane() {
   JPanel p = new JPanel(new BorderLayout(5, 5));
   p.add(buildDockingPort("North"), BorderLayout.NORTH);
   p.add(buildDockingPort("South"), BorderLayout.SOUTH);
   p.add(buildDockingPort("East"), BorderLayout.EAST);
   p.add(buildDockingPort("West"), BorderLayout.WEST);
   p.add(createDockingPort(), BorderLayout.CENTER);
   return p;
 }
 
 private DefaultDockingPort buildDockingPort(String desc) {
   // create the DockingPort
   DefaultDockingPort port = createDockingPort();
   // create the Dockable panel
   DockablePanel panel = new DockablePanel(desc);
   // dock the panel and return the DockingPort
   port.dock(panel.getDockable(), DockingPort.CENTER_REGION);
   return port;
 }
 
 private DefaultDockingPort createDockingPort() {
   DefaultDockingPort port = new DefaultDockingPort();
   port.setPreferredSize(new Dimension(100, 100));
   port.setBorderManager(new DemoBorderManager());
   port.setComponentProvider(new ComponentProvider());
   return port;
 }
 private class ComponentProvider extends ComponentProviderAdapter {
   public DockingPort createChildPort() {
     DefaultDockingPort port = new DefaultDockingPort();
     port.setComponentProvider(this);
     return port;
   }
   public JSplitPane createSplitPane() {
     JSplitPane split = new JSplitPane();
     split.setDividerSize(3);
     split.setBorder(null);
     if (split.getUI() instanceof BasicSplitPaneUI) {
       BasicSplitPaneDivider divider = ((BasicSplitPaneUI) split.getUI()).getDivider();
       if (divider != null && divider.getBorder()!=null)
         divider.setBorder(null);      
     }
     return split;
   }
 }
 public static void main(String[] args) {
   JFrame f = new BorderDemo();
   f.setSize(600, 400);
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.setVisible(true);
 }

}


      </source>
   
  
 
  



Compound dockable window

   <source lang="java">

package net.eleritec.docking.demos; import java.awt.BorderLayout; import java.awt.Color; import java.awt.ruponent; import java.awt.Dimension; import java.awt.Insets; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.LineBorder; import net.eleritec.docking.Dockable; import net.eleritec.docking.DockableAdapter; import net.eleritec.docking.DockingManager; import net.eleritec.docking.DockingPort; import net.eleritec.docking.defaults.DefaultDockingPort; public class CompoundDemo extends JPanel {

 private JLabel titlebar;
 private Dockable dockableImpl;
 
 public CompoundDemo(String title) {
   super();
   titlebar = createTitlebar(" " + title);
   add(titlebar);
   setBorder(new LineBorder(Color.black));
   dockableImpl = new DockableImpl();
 }
 
 private JLabel createTitlebar(String title) {
   JLabel lbl = new JLabel(title);
   lbl.setForeground(Color.white);
   lbl.setBackground(Color.blue);
   lbl.setOpaque(true);
   return lbl;
 }
 
 public void doLayout() {
   Insets in = getInsets();
   titlebar.setBounds(in.left, in.top, getWidth()-in.left-in.right, 25);
 }
 
 private CompoundDemo getThis() {
   return this;
 }
 
 
 private Dockable getDockable() {
   return dockableImpl;
 }
 
 private class DockableImpl extends DockableAdapter {
   public Component getDockable() {
     return getThis();
   }
   public String getDockableDesc() {
     return titlebar.getText().trim();
   }
   public Component getInitiator() {
     // the titlebar will the the "hot" component that initiates dragging
     return titlebar;
   }
 }
 
 private static JPanel createContentPane() {
   JPanel p = new JPanel(new BorderLayout(5, 5));
   p.add(buildDockingPort("North"), BorderLayout.NORTH);
   p.add(buildDockingPort("South"), BorderLayout.SOUTH);
   p.add(buildDockingPort("East"), BorderLayout.EAST);
   p.add(buildDockingPort("West"), BorderLayout.WEST);
   p.add(createDockingPort(), BorderLayout.CENTER);
   return p;
 }
 
 private static DefaultDockingPort buildDockingPort(String desc) {
   // create the DockingPort
   DefaultDockingPort port = createDockingPort();
   
   // create the Dockable panel
   CompoundDemo cd = new CompoundDemo(desc);
   DockingManager.registerDockable(cd.getDockable());
   // dock the panel and return the DockingPort
   port.dock(cd.getDockable(), DockingPort.CENTER_REGION);
   return port;
 }
 
 private static DefaultDockingPort createDockingPort() {
   DefaultDockingPort port = new DefaultDockingPort();
   port.setBackground(Color.gray);
   port.setPreferredSize(new Dimension(100, 100));
   return port;
 }
 
 public static void main(String[] args) {
   JFrame f = new JFrame("Compound Docking Demo");
   f.setContentPane(createContentPane());
   f.setSize(600, 400);
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.setVisible(true);
 }

}


      </source>
   
  
 
  



Cursor indication for dockable component

   <source lang="java">

package net.eleritec.docking.demos; import java.awt.BorderLayout; import java.awt.Color; import java.awt.ruponent; import java.awt.Dimension; import java.awt.Image; import java.awt.Insets; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.LineBorder; import net.eleritec.docking.CursorProvider; import net.eleritec.docking.Dockable; import net.eleritec.docking.DockableAdapter; import net.eleritec.docking.DockingManager; import net.eleritec.docking.DockingPort; import net.eleritec.docking.defaults.DefaultDockingPort; import net.eleritec.util.ResourceManager; public class CursorDemo extends JPanel {

 private JLabel titlebar;
 private CursorProvider cursorProvider;
 private Dockable dockableImpl;
 public CursorDemo(String title) {
   super();
   titlebar = createTitlebar(" " + title);
   add(titlebar);
   setBorder(new LineBorder(Color.black));
   dockableImpl = new DockableImpl();
 }
 private JLabel createTitlebar(String title) {
   JLabel lbl = new JLabel(title);
   lbl.setForeground(Color.white);
   lbl.setBackground(Color.blue);
   lbl.setOpaque(true);
   return lbl;
 }
 public void doLayout() {
   Insets in = getInsets();
   titlebar.setBounds(in.left, in.top, getWidth() - in.left - in.right, 25);
 }
 private CursorDemo getThis() {
   return this;
 }
 
 private void setCursorProvider(CursorProvider prov) {
   cursorProvider = prov;
 }
 
 private Dockable getDockable() {
   return dockableImpl;
 }
 
 
 private class DockableImpl extends DockableAdapter {
   public CursorProvider getCursorProvider() {
     return cursorProvider;
   }
   public Component getDockable() {
     return getThis();
   }
   public String getDockableDesc() {
     return titlebar.getText().trim();
   }
   public Component getInitiator() {
     // the titlebar will the the "hot" component that initiates dragging
     return titlebar;
   }
 }
 
 
 
 
 
 
 private static JPanel createContentPane() {
   JPanel p = new JPanel(new BorderLayout(5, 5));
   p.add(buildDockingPort("North"), BorderLayout.NORTH);
   p.add(buildDockingPort("South"), BorderLayout.SOUTH);
   p.add(buildDockingPort("East"), BorderLayout.EAST);
   p.add(buildDockingPort("West"), BorderLayout.WEST);
   p.add(createDockingPort(), BorderLayout.CENTER);
   return p;
 }
 private static DefaultDockingPort buildDockingPort(String desc) {
   // create the DockingPort
   DefaultDockingPort port = createDockingPort();
   // create the Dockable panel
   CursorDemo cd = new CursorDemo(desc);
   DockingManager.registerDockable(cd.getDockable());
   // use a custom cursor provider for the north panel
   if("North".equals(desc))
     cd.setCursorProvider(new CursorDelegate());
   // dock the panel and return the DockingPort
   port.dock(cd.getDockable(), DockingPort.CENTER_REGION);
   return port;
 }
 private static DefaultDockingPort createDockingPort() {
   DefaultDockingPort port = new DefaultDockingPort();
   port.setBackground(Color.gray);
   port.setPreferredSize(new Dimension(100, 100));
   return port;
 }
 public static void main(String[] args) {
   JFrame f = new JFrame("Custom Cursor Docking Demo");
   f.setContentPane(createContentPane());
   f.setSize(600, 400);
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.setVisible(true);
 }
 private static class CursorDelegate implements CursorProvider {
   private static final Image NORTH_IMG = createImg("tileHorizontal16.gif");
   private static final Image EAST_IMG = createImg("tileVertical16.gif");
   private static final Image CENTER_IMG = createImg("cascadeWindows16.gif");
   private static final Image BLOCKED_IMG = createImg("closeAllWindows16.gif");
   
   private static Image createImg(String imgName) {
     return ResourceManager.createImage("resources/images/demo/" + imgName);
   }
   
   public Image getCenterImage() {
     return CENTER_IMG;
   }
   public Image getDisallowedImage() {
     return BLOCKED_IMG;
   }
   public Image getEastImage() {
     return EAST_IMG;
   }
   public Image getNorthImage() {
     return NORTH_IMG;
   }
   public Image getSouthImage() {
     // same image as north
     return NORTH_IMG;
   }
   public Image getWestImage() {
     // same image as east
     return EAST_IMG;
   }
 }

}


      </source>
   
  
 
  



Elegant Dockable framework

   <source lang="java">

package net.eleritec.docking.demos.elegant; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JSplitPane; import javax.swing.UIManager; import javax.swing.plaf.basic.BasicSplitPaneDivider; import javax.swing.plaf.basic.BasicSplitPaneUI; import net.eleritec.docking.Dockable; import net.eleritec.docking.DockingPort; import net.eleritec.docking.defaults.DefaultDockingPort; import net.eleritec.docking.defaults.StandardBorderManager;

public class ElegantDemo extends JFrame {

 private JSplitPane horizontalSplit;
 private JSplitPane vertSplitRight;
 private JSplitPane vertSplitLeft;
 
 private ElegantPanel j2eeHierarchyView;
 private ElegantPanel j2eeNavView;
 private ElegantPanel consoleView;
 private ElegantPanel serversView;
 private ElegantPanel tasksView;
 private ElegantPanel searchView;
 private ElegantPanel synchronizeView;
 private ElegantPanel outlineView;
 private ElegantPanel editorView;
 
 private ElegantDockingPort topLeft;
 private ElegantDockingPort bottomLeft;
 private ElegantDockingPort topRight;
 private ElegantDockingPort bottomRight;
 
 public ElegantDemo() {
   super("Elegant Docking Demo");
   init();
 }
 private void init() {
   createViews();
   horizontalSplit = createSplitPane(JSplitPane.HORIZONTAL_SPLIT);
   vertSplitLeft = createSplitPane(JSplitPane.VERTICAL_SPLIT);
   vertSplitRight = createSplitPane(JSplitPane.VERTICAL_SPLIT);
   
   horizontalSplit.setLeftComponent(vertSplitLeft);
   horizontalSplit.setRightComponent(vertSplitRight);
   initDockingPorts();
   
   setContentPane(horizontalSplit);
 }
 
 private void createViews() {
   j2eeHierarchyView = new ElegantPanel("J2EE Hierarchy");
   j2eeNavView = new ElegantPanel("J2EE Navigator");
   consoleView = new ElegantPanel("Console");
   serversView = new ElegantPanel("Servers");
   tasksView = new ElegantPanel("Tasks");
   searchView = new ElegantPanel("Search");
   synchronizeView = new ElegantPanel("Synchronize");
   outlineView = new ElegantPanel("Outline");
   editorView = new ElegantPanel("Editor");
 }
 
 private void initDockingPorts() {
   topLeft = new ElegantDockingPort();
   bottomLeft = new ElegantDockingPort();
   topRight = new ElegantDockingPort();
   bottomRight = new ElegantDockingPort();
   
   topLeft.add(j2eeHierarchyView);
   topLeft.add(j2eeNavView);
   bottomLeft.add(outlineView);
   topRight.add(editorView);
   bottomRight.add(tasksView);
   bottomRight.add(serversView);
   bottomRight.add(consoleView);
   bottomRight.add(searchView);
   bottomRight.add(synchronizeView);    
   vertSplitLeft.setLeftComponent(topLeft);
   vertSplitLeft.setRightComponent(bottomLeft);
   vertSplitRight.setLeftComponent(topRight);
   vertSplitRight.setRightComponent(bottomRight);
 }
 private void postInit() {
   horizontalSplit.setDividerLocation(0.3d);
   vertSplitLeft.setDividerLocation(0.75d);
   vertSplitRight.setDividerLocation(0.75d);
 }
 private static JSplitPane createSplitPane(int orientation) {
   JSplitPane split = new JSplitPane(orientation);
   // remove the border from the split pane
   split.setBorder(null);
        
   // set the divider size for a more reasonable, less bulky look 
   split.setDividerSize(3);
   // check the UI.  If we can"t work with the UI any further, then
   // exit here.
   if (!(split.getUI() instanceof BasicSplitPaneUI))
      return split;
   //  grab the divider from the UI and remove the border from it
   BasicSplitPaneDivider divider =
            ((BasicSplitPaneUI) split.getUI()).getDivider();
   if (divider != null)
      divider.setBorder(null);
   return split;
 }
 
 public static void main(String[] args) {
   ElegantDemo demo = new ElegantDemo();
   demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   demo.setSize(800, 600);
   demo.setVisible(true);
   
   // now that we"re visible and validated, move the split pane
   // dividers to their proper locations.
   demo.postInit();
 }

}

      </source>
   
  
 
  



Simple demo for dockable windows

   <source lang="java">

package net.eleritec.docking.demos; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JPanel; import net.eleritec.docking.DockingManager; import net.eleritec.docking.DockingPort; import net.eleritec.docking.defaults.DefaultDockingPort; public class SimpleDemo extends JFrame {

 public static void main(String[] args) {
   JFrame f = new SimpleDemo();
   f.setSize(600, 400);
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.setVisible(true);
 }
 
 public SimpleDemo() {
   super("Simple Docking Demo");
   setContentPane(createContentPane());
 }
 
 private JPanel createContentPane() {
   JPanel p = new JPanel(new BorderLayout(5, 5));
   p.add(buildDockingPort(Color.blue, "Blue"), BorderLayout.NORTH);
   p.add(buildDockingPort(Color.red, "Red"), BorderLayout.SOUTH);
   p.add(buildDockingPort(Color.green, "Green"), BorderLayout.EAST);
   p.add(buildDockingPort(Color.yellow, "Yellow"), BorderLayout.WEST);
   p.add(createDockingPort(), BorderLayout.CENTER);
   return p;
 }
 
 private DefaultDockingPort buildDockingPort(Color color, String desc) {
   // create the DockingPort
   DefaultDockingPort port = createDockingPort();
   
   // create and register the Dockable panel
   JPanel p = new JPanel();
   p.setBackground(color);
   DockingManager.registerDockable(p, desc, true);
    
   // dock the panel and return the DockingPort
   port.dock(p, desc, DockingPort.CENTER_REGION, false);
   return port;
 }
 
 private DefaultDockingPort createDockingPort() {
   DefaultDockingPort port = new DefaultDockingPort();
   port.setBackground(Color.gray);
   port.setPreferredSize(new Dimension(100, 100));
   return port;
 }

}


      </source>
   
  
 
  



SplitPane and dockable component

   <source lang="java">

package net.eleritec.docking.demos; import java.awt.BorderLayout; import java.awt.Color; import java.awt.ruponent; import java.awt.Dimension; import java.awt.Insets; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JSplitPane; import javax.swing.border.LineBorder; import javax.swing.plaf.basic.BasicSplitPaneDivider; import javax.swing.plaf.basic.BasicSplitPaneUI; import net.eleritec.docking.Dockable; import net.eleritec.docking.DockableAdapter; import net.eleritec.docking.DockingManager; import net.eleritec.docking.DockingPort; import net.eleritec.docking.defaults.ruponentProviderAdapter; import net.eleritec.docking.defaults.DefaultDockingPort; public class SplitPaneDemo extends JPanel {

 private JLabel titlebar;
 private Dockable dockableImpl;
 
 public SplitPaneDemo(String title) {
   super();
   titlebar = createTitlebar(" " + title);
   add(titlebar);
   setBorder(new LineBorder(Color.black));
   dockableImpl = new DockableImpl();
 }
 
 private JLabel createTitlebar(String title) {
   JLabel lbl = new JLabel(title);
   lbl.setForeground(Color.white);
   lbl.setBackground(Color.blue);
   lbl.setOpaque(true);
   return lbl;
 }
 
 public void doLayout() {
   Insets in = getInsets();
   titlebar.setBounds(in.left, in.top, getWidth()-in.left-in.right, 25);
 }
 
 private Dockable getDockable() {
   return dockableImpl;
 }
 
 private SplitPaneDemo getThis() {
   return this;
 }
 
 private class DockableImpl extends DockableAdapter {
   public Component getDockable() {
     return getThis();
   }
   public String getDockableDesc() {
     return titlebar.getText().trim();
   }
   public Component getInitiator() {
     // the titlebar will the the "hot" component that initiates dragging
     return titlebar;
   }
 }
 
 private static class ComponentProvider extends ComponentProviderAdapter {
   public DockingPort createChildPort() {
     DefaultDockingPort port = new DefaultDockingPort();
     port.setComponentProvider(this);
     return port;
   }
   public JSplitPane createSplitPane() {
     JSplitPane split = new JSplitPane();
     // remove the border from the split pane
     split.setBorder(null);
     // set the divider size for a more reasonable, less bulky look 
     split.setDividerSize(3);
     // check the UI.  If we can"t work with the UI any further, then
     // exit here.
     if (!(split.getUI() instanceof BasicSplitPaneUI))
       return split;
     //  grab the divider from the UI and remove the border from it
     BasicSplitPaneDivider divider = ((BasicSplitPaneUI) split.getUI()).getDivider();
     if (divider != null)
       divider.setBorder(null);
     return split;
   }

}




 private static JPanel createContentPane() {
   JPanel p = new JPanel(new BorderLayout(5, 5));
   p.add(buildDockingPort("North"), BorderLayout.NORTH);
   p.add(buildDockingPort("South"), BorderLayout.SOUTH);
   p.add(buildDockingPort("East"), BorderLayout.EAST);
   p.add(buildDockingPort("West"), BorderLayout.WEST);
   p.add(createDockingPort(), BorderLayout.CENTER);
   return p;
 }
 
 private static DefaultDockingPort buildDockingPort(String desc) {
   // create the DockingPort
   DefaultDockingPort port = createDockingPort();
   
   // create the Dockable panel
   SplitPaneDemo spd = new SplitPaneDemo(desc);
   DockingManager.registerDockable(spd.getDockable());
   // dock the panel and return the DockingPort
   port.dock(spd.getDockable(), DockingPort.CENTER_REGION);
   return port;
 }
 
 private static DefaultDockingPort createDockingPort() {
   DefaultDockingPort port = new DefaultDockingPort();
   port.setBackground(Color.gray);
   port.setPreferredSize(new Dimension(100, 100));
   port.setComponentProvider(new ComponentProvider());
   return port;
 }
 
 public static void main(String[] args) {
   JFrame f = new JFrame("Split Docking Demo");
   f.setContentPane(createContentPane());
   f.setSize(600, 400);
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.setVisible(true);
 }

}


      </source>
   
  
 
  



Swing dockable window

Swing dock framework

TabbedPane and dockable component 2

   <source lang="java">

package net.eleritec.docking.demos; import java.awt.BorderLayout; import java.awt.Color; import java.awt.ruponent; import java.awt.Dimension; import java.awt.Insets; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.border.LineBorder; import net.eleritec.docking.Dockable; import net.eleritec.docking.DockableAdapter; import net.eleritec.docking.DockingManager; import net.eleritec.docking.DockingPort; import net.eleritec.docking.defaults.ruponentProviderAdapter; import net.eleritec.docking.defaults.DefaultDockingPort;

public class TabbedPaneDemo extends JPanel {

 private JLabel titlebar;
 private Dockable dockableImpl;
 public TabbedPaneDemo(String title) {
   super();
   titlebar = createTitlebar(" " + title);
   add(titlebar);
   setBorder(new LineBorder(Color.black));
   dockableImpl = new DockableImpl();
 }
 private JLabel createTitlebar(String title) {
   JLabel lbl = new JLabel(title);
   lbl.setForeground(Color.white);
   lbl.setBackground(Color.blue);
   lbl.setOpaque(true);
   return lbl;
 }
 public void doLayout() {
   Insets in = getInsets();
   titlebar.setBounds(in.left, in.top, getWidth() - in.left - in.right, 25);
 }
 private TabbedPaneDemo getThis() {
   return this;
 }
 
 private Dockable getDockable() {
   return dockableImpl;
 }
 private class DockableImpl extends DockableAdapter {
   public Component getDockable() {
     return getThis();
   }
   
   public String getDockableDesc() {
     return titlebar.getText().trim();
   }
   public Component getInitiator() {
     // the titlebar will the the "hot" component that initiates dragging
     return titlebar;
   }
 }


 private static JPanel createContentPane() {
   JPanel p = new JPanel(new BorderLayout(5, 5));
   p.add(buildDockingPort("North"), BorderLayout.NORTH);
   p.add(buildDockingPort("South"), BorderLayout.SOUTH);
   p.add(buildDockingPort("East"), BorderLayout.EAST);
   p.add(buildDockingPort("West"), BorderLayout.WEST);
   p.add(createDockingPort("Center"), BorderLayout.CENTER);
   return p;
 }
 private static DefaultDockingPort buildDockingPort(String desc) {
   // create the DockingPort
   DefaultDockingPort port = createDockingPort(desc);
   // create the Dockable panel
   TabbedPaneDemo cd = new TabbedPaneDemo(desc);
   DockingManager.registerDockable(cd.getDockable());
   // dock the panel and return the DockingPort
   port.dock(cd.getDockable(), DockingPort.CENTER_REGION);
   return port;
 }
 private static int getTabPosition(String desc) {
   if ("North".equals(desc))
     return JTabbedPane.TOP;
   if ("South".equals(desc))
     return JTabbedPane.BOTTOM;
   if ("East".equals(desc))
     return JTabbedPane.RIGHT;
   if ("West".equals(desc))
     return JTabbedPane.LEFT;
   return JTabbedPane.TOP;
 }
 private static DefaultDockingPort createDockingPort(String desc) {
   DefaultDockingPort port = new DefaultDockingPort();
   port.setBackground(Color.gray);
   port.setPreferredSize(new Dimension(200, 100));
   port.setComponentProvider(new ComponentProvider(getTabPosition(desc)));
   return port;
 }
 public static void main(String[] args) {
   JFrame f = new JFrame("Custom Conatainers Docking Demo");
   f.setContentPane(createContentPane());
   f.setSize(600, 400);
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.setVisible(true);
 }
 private static class ComponentProvider extends ComponentProviderAdapter {
   int tabPosition;
   private ComponentProvider(int tabs) {
     tabPosition = tabs;
   }
   public JTabbedPane createTabbedPane() {
     return new JTabbedPane(tabPosition);
   }
 }
 

}


      </source>