EarthWeb
Developer.com
Site
windows 2000
visual c++
java
visual basic
javascripts
recommend it
 
Book
thinking in java
 
Interact
forum
guest book
jobs
jokes
what's new

share code
 
Resource
add resource
modify resource
new resource
 

[Internet Jobs]
-----
Java by E-mail:

Get the weekly e-mail highlights on Java!
-----

-

Multi-span header


Author: Nobuo Tamemasa


Multi-span header
Make a header span multiple columns. You shouldn't really have to have such a UI design but if you do need it here it is. A better UI is to have nested headers and in fact, this example uses the same classes as a nested-header.

See Nested sub-headers for source code for the three classes - ColumnGroup, GroupableTableHeader, and GroupableTableHeaderUI.


The code below shows how to use the three classes mentioned above to implement the multi-span header.


/*
 *	(swing1.1beta3)
 * 
 * |-----------------------------------------------------|
 * |   1st	|      2nd	  |	     3rd	     |
 * |-----------------------------------------------------|
 * |	|	 |	  |	   |	    |	     |
 */
//package jp.gr.java_conf.tame.swing.examples;

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

import jp.gr.java_conf.tame.swing.table.*;
 
/**
 * @version 1.0 11/09/98
 */
public class MultiWidthHeaderExample extends JFrame {

  MultiWidthHeaderExample() {
	super( "Multi-Width Header Example" );

    DefaultTableModel dm = new DefaultTableModel();
	dm.setDataVector(new Object[][]{
	  {"a","b","c","d","e","f"},
	  {"A","B","C","D","E","F"}},
	new Object[]{"1 st","","","","",""});

    JTable table = new JTable( dm ) {
	  protected JTableHeader createDefaultTableHeader() {
	    return new GroupableTableHeader(columnModel);
	  }
	};
	TableColumnModel cm = table.getColumnModel();
	ColumnGroup g_2nd = new ColumnGroup("2 nd");
	g_2nd.add(cm.getColumn(1));
	g_2nd.add(cm.getColumn(2));
	ColumnGroup g_3rd = new ColumnGroup("3 rd");
	g_3rd.add(cm.getColumn(3));
	g_3rd.add(cm.getColumn(4));
	g_3rd.add(cm.getColumn(5));
	GroupableTableHeader header = (GroupableTableHeader)table.getTableHeader();
	header.addColumnGroup(g_2nd);
	header.addColumnGroup(g_3rd);
	JScrollPane scroll = new JScrollPane( table );
	getContentPane().add( scroll );
	setSize( 400, 100 );  
	header.revalidate(); 
  }

  public static void main(String[] args) {
	MultiWidthHeaderExample frame = new MultiWidthHeaderExample();
	frame.addWindowListener( new WindowAdapter() {
	  public void windowClosing( WindowEvent e ) {
	    System.exit(0);
	  }
	});
	frame.setVisible(true);
  }
}

Posted On: 2-Jan-1999

internet.commerce