package de.hameister.treetable; import java.awt.Container; import java.awt.GridLayout; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.SwingUtilities; import javax.swing.UIManager; public class TreeTableMain extends JFrame { public TreeTableMain() { super("Tree Table Demo"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new GridLayout(0, 1)); MyAbstractTreeTableModel treeTableModel = new MyDataModel(createDataStructure()); MyTreeTable myTreeTable = new MyTreeTable(treeTableModel, false); Container cPane = getContentPane(); cPane.add(new JScrollPane(myTreeTable)); setSize(1000, 800); setLocationRelativeTo(null); } private static MyDataNode createDataStructure() { List<MyDataNode> children1 = new ArrayList<>(); children1.add(new MyDataNode("N12", "C12", new Date(), Integer.valueOf(50), null)); children1.add(new MyDataNode("N13", "C13", new Date(), Integer.valueOf(60), null)); children1.add(new MyDataNode("N14", "C14", new Date(), Integer.valueOf(70), null)); children1.add(new MyDataNode("N15", "C15", new Date(), Integer.valueOf(80), null)); List<MyDataNode> children2 = new ArrayList<>(); children2.add(new MyDataNode("N12", "C12", new Date(), Integer.valueOf(10), null)); children2.add(new MyDataNode("N13", "C13", new Date(), Integer.valueOf(20), children1)); children2.add(new MyDataNode("N14", "C14", new Date(), Integer.valueOf(30), null)); children2.add(new MyDataNode("N15", "C15", new Date(), Integer.valueOf(40), null)); List<MyDataNode> rootNodes = new ArrayList<>(); rootNodes.add(new MyDataNode("N1", "C1", new Date(), Integer.valueOf(10), children2)); rootNodes.add(new MyDataNode("N2", "C2", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N3", "C3", new Date(), Integer.valueOf(10), children2)); rootNodes.add(new MyDataNode("N4", "C4", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N5", "C5", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N6", "C6", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N7", "C7", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N8", "C8", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N9", "C9", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N10", "C10", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N11", "C11", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N12", "C7", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N13", "C8", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N14", "C9", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N15", "C10", new Date(), Integer.valueOf(10), children1)); rootNodes.add(new MyDataNode("N16", "C11", new Date(), Integer.valueOf(10), children1)); MyDataNode root = new MyDataNode("R1", "R1", new Date(), Integer.valueOf(10), rootNodes); return root; } public static void main(final String[] args) { Runnable gui = new Runnable() { public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } new TreeTableMain().setVisible(true); } }; SwingUtilities.invokeLater(gui); } }