Summary
Tutorial
JavaDocs
Download
Sourceforge Page

SourceForge.net Logo

PageLayout

Quickstart Examples



(All the examples given below assume that the static methods and constants of the class EasyCell have been appropriately imported by using the import static pagelayout.EasyCell.* statement.)

Simple Dialog
A Grid of Buttons
Baseline Alignment
An advanced example.

First Example

 //Layout code
 Column topLevel=column(row(none,center,label,text),
        	        row(center,none,ok,cancel ));
 // Create the layout
 topLevel.createLayout(container);
 //Detailed code
 // use import static pagelayout.EasyCell.* for import.
 // Create components
 JFrame frame=new JFrame();
 Container container=frame.getContentPane();
 JTextField text=new JTextField("Text field",15);
 JLabel label=new JLabel("Label: ");
 JButton ok= new JButton("OK");
 JButton cancel= new JButton("Cancel");
 // Top Row
 Column topLevel=column(row(none,center,label,text),
        	        row(center,none,ok,cancel ));
 // Create the layout
 topLevel.createLayout(container);

 frame.pack();
 frame.show();

A Grid of Buttons

 // Layout  code
 // Create the layout.
 Cell topLevel
   =column(center,center,
      grid( row(right,none,leftButton), spantwocolumns,                span(), eol(),
            spantworows,                row(center,none,centernofill), span(), eol(),
            vspan(),                    downfillhoriz,                 corner));

 
 // Make the required component sizes to be flexible.
 topLevel.setFixedWidth(false,downfillhoriz,spantwocolumns);
 topLevel.setFixedHeight(false,spantworows);
 
 // Set the component gaps to be zero
 topLevel.setComponentGaps(0,0);
  
 
 // Set the size of the grid to be fixed 
 // after the components are laid out.
 topLevel.setFixedWidth(true,grid);
 topLevel.setFixedHeight(true,grid);
 
 // Create the layout.
 topLevel.createLayout(container)
 JFrame frame=new JFrame();
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 Container container=frame.getContentPane();
 
 // Create components
 JButton leftButton=new JButton("Left");
 JButton spantwocolumns=new JButton("Spanning Two Columns");
 JButton spantworows=new JButton("Spanning two rows, expanded");
 JButton centernofill=new JButton("Center, no fill");
 JButton downfillhoriz=new JButton("Down, fill horizontal");
 JButton corner=new JButton("Corner");
 
 // Create the layout.
 Cell topLevel=
    column(center,center,
      grid( row(right,none,leftButton), spantwocolumns,                span(), eol(),
            spantworows,                row(center,none,centernofill), span(), eol(),
            vspan(),                    downfillhoriz,                 corner));

 
 // Make the required component sizes to be flexible.
 topLevel.setFixedWidth(false,downfillhoriz,spantwocolumns);
 topLevel.setFixedHeight(false,spantworows);
 
 // Set the component gaps to be zero
 topLevel.setComponentGaps(0,0);
  
 
 // Set the size of the grid to be fixed 
 // after the components are laid out.
 topLevel.setFixedWidth(true,grid);
 topLevel.setFixedHeight(true,grid);
 
 // Create the layout.
 topLevel.createLayout(container)
 // pack and show
 frame.pack();
 frame.show();


A Baseline Alignment Example



    // Layout code
    
    CellGrid cellgrid=
	   grid( bold,      strikeThrough, sampleText,                         eol(),
		 italic,    teletype,      column(center,none,textArea,apply), eol(),
		 underline, emphasis,      vspan(),                            eol(),
		 skip(),    strong,        vspan());
		
    
    // Baseline alignment of the components in the first row.
    cellgrid.alignBaseline(bold,strikeThrough,sampleText);
    
    // Create layout.
    cellgrid.createLayout(container);
	
    // Detailed code
    JFrame frame=new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container container=frame.getContentPane();
    
    // Create components
    JCheckBox bold=new JCheckBox("Bold");
    JCheckBox italic=new JCheckBox("Italic");
    JCheckBox underline=new JCheckBox("Underline");
    JCheckBox strikeThrough=new JCheckBox("Strikethrough");
    JCheckBox teletype=new JCheckBox("Teletype");
    JCheckBox emphasis=new JCheckBox("Emphasis");
    JCheckBox strong=new JCheckBox("Strong");
    JLabel sampleText=new JLabel("Sample Text");
    JButton apply=new JButton("Apply");
    JTextArea textArea=new JTextArea("This is sample text");
    textArea.setRows(5);
    textArea.setColumns(15);
    textArea.setBorder(BorderFactory.createLoweredBevelBorder());
    
    CellGrid cellgrid=
	   grid( bold,      strikeThrough, sampleText,                         eol(),
		 italic,    teletype,      column(center,none,textArea,apply), eol(),
		 underline, emphasis,      vspan(),                            eol(),
		 skip(),    strong,        vspan());
		
    
    // Baseline alignment of the components in the first row.
    cellgrid.alignBaseline(bold,strikeThrough,sampleText);
    
    // Create layout.
    cellgrid.createLayout(container);
    
    frame.pack();
    frame.setSize(frame.getPreferredSize());
    frame.show();

A slightly more complex Example



  // Layout code
CellGrid cellgrid=grid(
  dogName,                dogNameEditor,  span(),                       eol(), 
  breed,                  combo,          row(center,center,categories),eol(),
  photo,                  imagePanel,     list,                         eol(),
  row(hgap(20),browse),   vspan(),        vspan(),                      eol(),
  row(hgap(20),delete),   vspan(),        vspan(),                      eol(),
  ownerInfoPanelCell(),   span(),         vspan(),                      eol(),
  row(right,center,enter),span(),         span());
  // Size constraints
  cellgrid.linkWidth(categories,2,list);
  cellgrid.linkWidth(browse,1,delete);
  // Fix the combo box height
  cellgrid.setFixedHeight(true,combo);

  // Make the list expandible in both directions.
  cellgrid.setFixedWidth(false,list);
  cellgrid.setFixedHeight(false,list);

  // Baseline alignments
cellgrid.alignBaseline(dogName,dogNameEditor);
cellgrid.alignBaseline(breed,combo,categories);

  // Create the layout
  cellgrid.createLayout(container);


   Creation of OfficeInfoPanel for the grid shown above
  Cell gridcell=grid(name,nameEditor,eol(),
		   phone, phoneEditor);

  // Baseline alignment
  gridcell.alignBaseline(name,nameEditor);
  gridcell.alignBaseline(phone,phoneEditor);

  // Create and return the panel cell 
  return  new PanelCell(panel,gridcell);


// Utility function for creating a JTextField with border
public static JTextField createTextField(String text,int len)
{
	JTextField ed=new JTextField(text,len);
	ed.setBorder(BorderFactory.createLoweredBevelBorder());
	return ed;
}
public static PanelCell ownerInfoPanelCell()
{
	// Create the cell for owner info editors

	// The panel
	JPanel panel=new JPanel();

	
	Border border=BorderFactory.createEtchedBorder();
	border=BorderFactory.createTitledBorder(border,"Owner Info");
	panel.setBorder(border);
	
	// Create components
	JLabel name=new JLabel("Name");
	JLabel phone=new JLabel("Phone");
	JTextField nameEditor=createTextField("Jane Doe",10);
	JTextField phoneEditor=createTextField("555-3245",10);

	Cell gridcell=grid(name,nameEditor,eol(),
			   phone, phoneEditor);

	// Baseline alignment
	gridcell.alignBaseline(name,nameEditor);
	gridcell.alignBaseline(phone,phoneEditor);

	// Create and return the panel cell 
	return  new PanelCell(panel,gridcell);
}
public static String [] breedCategories= { 
         "Best of Breed", "Prettiest Female", "Handsomest Male", 
         "Best Dressed", "Fluffiest Ears", "Most Colors", 
         "Best Performer", "Loudest Bark", "Best Behaved", 
         "Prettiest Eyes", "Most Hair", "Longest Tail", 
         "Cutest Trick"};
public static String [] breeds=
	{"Collie", "Pitbull", "Poodle", "Scottie"};
public static void createGUI()
{
	JFrame frame=new JFrame();
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	Container container=frame.getContentPane();

	// Create Components
	JComboBox combo=new JComboBox(breeds);
	JLabel dogName=new JLabel("Dog's Name");
	JTextField dogNameEditor=createTextField("Fifi",20);
	JLabel breed=new JLabel("Breed");
	JLabel photo=new JLabel("Photo");
	JLabel categories=new JLabel("Categories");
	JButton browse=new JButton("Browse..");
	JButton delete=new JButton("Delete");
	JButton enter=new JButton("Enter");
	JPanel imagePanel=new JPanel();
	imagePanel.setBackground(new Color(200,200,255));
	imagePanel.setBorder(BorderFactory.createLoweredBevelBorder());

	JList list=new JList(breedCategories);
	list.setBorder(BorderFactory.createLoweredBevelBorder());
	list.setBackground(Color.white);
	list.setVisibleRowCount(100);
	
	CellGrid cellgrid=
	    grid(dogName,                dogNameEditor,span(), 
	         eol(),
		 breed,                  combo,        row(center,center,categories),
		 eol(),
		 photo,                  imagePanel,   list,
		 eol(),
		 row(hgap(20),browse),   vspan(),      vspan(),
		 eol(),
		 row(hgap(20),delete),   vspan(),      vspan(),
		 eol(),
		 ownerInfoPanelCell(),   span(),       vspan(),
		 eol(),
	         row(right,center,enter),span(),span());


	// Size constraints
	cellgrid.linkWidth(categories,2,list);
	cellgrid.linkWidth(browse,1,delete);

	// Fix the combo box height
	cellgrid.setFixedHeight(true,combo);

	// Make the list expandible in both directions.
	cellgrid.setFixedWidth(false,list);
	cellgrid.setFixedHeight(false,list);

	// Baseline alignments
	cellgrid.alignBaseline(dogName,dogNameEditor);
	cellgrid.alignBaseline(breed,combo,categories);

	// Create the layout
	cellgrid.createLayout(container);

	frame.pack();
	frame.setSize(frame.getPreferredSize());
	frame.setVisible(true);
}