private JComponent createContents() { JPanel result = new JPanel(new BorderLayout()); DefaultTableModel dm = new DefaultTableModel(); dm.setDataVector(new Object[][] { {"11","12","13","14"}, {"21","22","23","24"} }, new Object[] { "�,"�,"�,"� }); JTable table = new JTable( dm ) { protected JTableHeader createDefaultTableHeader() { return new GroupableTableHeader(columnModel); } }; TableColumnModel cm = table.getColumnModel(); ColumnGroup g1 = new ColumnGroup("Group1"); g1.add(cm.getColumn(0)); ColumnGroup g2 = new ColumnGroup("Group2"); g2.add(cm.getColumn(3)); ColumnGroup g3 = new ColumnGroup("Group3"); g3.add(cm.getColumn(1)); g3.add(cm.getColumn(2)); g2.add(g3); GroupableTableHeader header = (GroupableTableHeader)table.getTableHeader(); header.addColumnGroup(g1); header.addColumnGroup(g2); header.addColumnGroup(g3); JScrollPane scroll = new JScrollPane(table); result.add(scroll,BorderLayout.CENTER); return result; }
GroupableHeaderExample() { super("Groupable Header Example"); DefaultTableModel dm = new DefaultTableModel(); dm.setDataVector( new Object[][] { {"119", "foo", "bar", "ja", "ko", "zh"}, {"911", "bar", "foo", "en", "fr", "pt"} }, new Object[] {"SNo.", "1", "2", "Native", "2", "3"}); JTable table = new JTable(dm) { protected JTableHeader createDefaultTableHeader() { return new GroupableTableHeader(columnModel); } }; TableColumnModel cm = table.getColumnModel(); ColumnGroup g_name = new ColumnGroup("Name"); g_name.add(cm.getColumn(1)); g_name.add(cm.getColumn(2)); ColumnGroup g_lang = new ColumnGroup("Language"); g_lang.add(cm.getColumn(3)); ColumnGroup g_other = new ColumnGroup("Others"); g_other.add(cm.getColumn(4)); g_other.add(cm.getColumn(5)); g_lang.add(g_other); GroupableTableHeader header = (GroupableTableHeader) table.getTableHeader(); header.addColumnGroup(g_name); header.addColumnGroup(g_lang); JScrollPane scroll = new JScrollPane(table); getContentPane().add(scroll); setSize(400, 120); }