class Grid3x3Fragment : Fragment() { override val root = gridpane { padding = Insets(10.0) hgap = 4.0 vgap = 4.0 row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.RED } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.BLUE } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.GREEN } } row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.PURPLE } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.BLACK } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.GRAY } } row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.PINK } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.YELLOW } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.ORANGE } } } } class GridColspanFragment : Fragment() { override val root = gridpane { padding = Insets(10.0) hgap = 4.0 vgap = 4.0 row { add( rectangle(0.0, 0.0, 80.0, 40.0) { fill = Color.RED }, 0, 0, 2, 1 ) add( rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.GREEN }, 2, 0, 1, 1 ) } row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.PURPLE } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.BLACK } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.GRAY } } row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.PINK } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.YELLOW } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.ORANGE } } } } class GridRowspanFragment : Fragment() { override val root = gridpane { padding = Insets(10.0) hgap = 4.0 vgap = 4.0 row { add( rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.RED }, 0, 0, 1, 1 ) add( rectangle(0.0, 0.0, 40.0, 80.0) { fill = Color.BLUE }, 1, 0, 1, 2 ) add( rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.GREEN }, 2, 0, 1, 1 ) } row { add( rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.PURPLE }, 0, 1, 1, 1 ) add( rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.GRAY }, 2, 1, 1, 1 ) } row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.PINK } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.YELLOW } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.ORANGE } } } } class GridLongCol : Fragment() { override val root = gridpane { padding = Insets(10.0) hgap = 4.0 vgap = 4.0 row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.RED } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.BLUE } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.GREEN } } row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.PURPLE } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.BLACK } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.GRAY } } row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.PINK } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.YELLOW } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.ORANGE } } columnConstraints.addAll( ColumnConstraints(100.0), ColumnConstraints(), ColumnConstraints() ) isGridLinesVisible = true } } class GridTallRow : Fragment() { override val root = gridpane { padding = Insets(10.0) hgap = 4.0 vgap = 4.0 row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.RED } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.BLUE } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.GREEN } } row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.PURPLE } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.BLACK } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.GRAY } } row { rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.PINK } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.YELLOW } rectangle(0.0, 0.0, 40.0, 40.0) { fill = Color.ORANGE } } rowConstraints.addAll( RowConstraints(), RowConstraints(100.0), RowConstraints() ) isGridLinesVisible = true } } class GridDemosMainView : View() { override val root = hbox { vbox { padding = Insets(40.0) spacing = 10.0 label("3x3") add(Grid3x3Fragment::class) separator() label("colspan") add(GridColspanFragment::class) separator() label("rowspan") add(GridRowspanFragment::class) } separator() vbox { padding = Insets(40.0) spacing = 10.0 label("column constraints") add(GridLongCol::class) separator() label("row constraints") add(GridTallRow::class) } } } class GridDemosApp : App(GridDemosMainView::class)