JavaFX DotView in Default Window

Demonstrates using JavaFX controls with Processing default window’s draw() using familiar code.

import javafx.scene.canvas.Canvas;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.Pane;
import javafx.scene.control.Slider;
import javafx.scene.control.ColorPicker;
import javafx.scene.paint.Color;

Canvas canvas;
StackPane root;
Pane pane;
Slider slider;
ColorPicker colorPicker;

void setup(){
  size(600,600,FX2D);
  surface.setTitle("JavaFX DotView in Default Wnd");
  canvas = (Canvas)surface.getNative();
  root = (StackPane)canvas.getParent();
  pane = new Pane();
  root.getChildren().add(pane);
  slider = new Slider(20, 500, 10);
  slider.setLayoutX(190);
  slider.setLayoutY(20);
  pane.getChildren().add(slider);
  colorPicker = new ColorPicker();
  colorPicker.setLayoutX(400);
  colorPicker.setLayoutY(15);
  colorPicker.setValue(Color.GREEN);
  pane.getChildren().add(colorPicker);
}

void draw(){
 background(209);
 float r = (float)colorPicker.getValue().getRed()*255;
 float g = (float)colorPicker.getValue().getGreen()*255;
 float b = (float)colorPicker.getValue().getBlue()*255;
 fill(r,g,b);
 circle(width/2, height/2, (float)slider.getValue());
}

Output: