package javafxapplication1;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TreeTableColumn;
import javafx.scene.control.TreeTableView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class PlainTableMain
{

    public static void main( String[] args )
    {
        Application.launch( MainFx.class, args );
    }

    public static class MainFx extends Application
    {

        @Override
        public void start( Stage aPrimaryStage ) throws Exception
        {

            TreeTableView treeTable = new TreeTableView<>();
            treeTable.setPrefWidth( 400 );

            treeTable.getColumns()
                .add( generateColumn( "Col1" ) );
            treeTable.getColumns()
                .add( generateColumn( "Col2" ) );
            treeTable.getColumns()
                .add( generateColumn( "Col3" ) );
            treeTable.getColumns()
                .add( generateColumn( "Col4" ) );
            treeTable.getColumns()
                .add( generateColumn( "Col5" ) );

            // Create the VBox
            VBox root = new VBox( treeTable );

            // Create the Scene
            Scene scene = new Scene( root );
            // Add the Scene to the Stage
            aPrimaryStage.setScene( scene );
            // Set the Title
            aPrimaryStage.setTitle( "A simple TreeTableView" );
            // Display the Stage
            aPrimaryStage.show();
        }
    }

    private static TreeTableColumn generateColumn(String aName)
    {
        TreeTableColumn col1 = new TreeTableColumn( aName );
        TreeTableColumn col11 = new TreeTableColumn( aName + "1" );
        TreeTableColumn col12 = new TreeTableColumn( aName + "2" );
        TreeTableColumn col13 = new TreeTableColumn( aName + "3" );
        col1.getColumns().add( col11);
        col11.getColumns().add( col12);
        col12.getColumns().add( col13);
        return col1;
    }
}