----------------------
----------------------

 Advanced Users


One of the first things an advanced user will notice is that this tool will allow you to add subpanels but no tabs. And there are other issues with creating a form from scratch using the tool. Most advanced users will actually create some of the form first (especially tabs and other difficult controls) and then run the panel and pop up the form layout maker to add the easier stuff. So here is an example file where we want to layout some tabs. When you run this, the FormLayoutMaker will popup and you'll be able to layout the whole panel as well as the tabs. You can also add controls to the tab panels. This file is probably the best way to start if you consider yourself an advanced user. This way, you can also create controls with factory methods and lay them out using the tool.

Also, keep in mind that when you run this tool, it will look like only one of the controls was actually added. They are all there, they just all end up in the first row and the first column. They are essentially on top of each other. You can either move the top one over to see the next one underneath or prefereable use the Show Component combobox to bring the one that you want to work with to the top. Lastly, when you actually generate the xml file from the tool, you will have to modify the code below to load the LayoutConstraintsManager from the xml file rather than just creating a new one from scratch. I've included this file in the release archive.

package org.mlc.swing.example;

import org.mlc.swing.layout.*;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;

/**
*
@author Michael Connor
*/
public class ExamplePanel extends javax.swing.JPanel
{
   
JLabel nameLabel = new JLabel ( "Name" ) ;
    JTextField nameText =
new JTextField () ;
    JTabbedPane tabbedPane =
new JTabbedPane () ;
    JPanel firstTab =
new JPanel () ;
    JPanel secondTab =
new JPanel () ;
    JPanel thirdTab =
new JPanel () ;

   
public ExamplePanel ()
    {
       
super () ;
        org.mlc.swing.layout.LayoutConstraintsManager layoutConstraintsManager =
           
new org.mlc.swing.layout.LayoutConstraintsManager () ;
        setBorder
( com.jgoodies.forms.factories.Borders.DIALOG_BORDER ) ;

 
this .setLayout ( layoutConstraintsManager.createLayout ( "panel" , this )) ;
  firstTab.setLayout
( layoutConstraintsManager.createLayout ( "firstTab" , firstTab )) ;
  secondTab.setLayout
( layoutConstraintsManager.createLayout ( "secondTab" , secondTab )) ;
  thirdTab.setLayout
( layoutConstraintsManager.createLayout ( "thirdTab" , thirdTab )) ;

        LayoutFrame layoutFrame =
new LayoutFrame ( layoutConstraintsManager ) ;
        layoutFrame.setVisible
( true ) ;

       
this .add ( tabbedPane, "tabbedPane" ) ;
       
this .add ( nameLabel,  "nameLabel" ) ;
       
this .add ( nameText,  "nameText" ) ;
        tabbedPane.add
( "First" , firstTab ) ;
        tabbedPane.add
( "Second" , secondTab ) ;
        tabbedPane.add
( "Third" , thirdTab ) ;
   
}

   
public static void main ( String [] args )
    {
       
ExamplePanel examplePanel = new ExamplePanel () ;

        JFrame frame =
new JFrame ( "Example" ) ;
        frame.setDefaultCloseOperation
( JFrame.EXIT_ON_CLOSE ) ;
        frame.getContentPane
() .setLayout ( new BorderLayout ()) ;
        frame.getContentPane
() .add ( examplePanel, BorderLayout.CENTER ) ;
        frame.setSize
( 400 , 500 ) ;
        frame.setVisible
( true ) ;
   
}

}

When you are done, simply comment out the two lines where you create and show the layout frame.