# JavaFX Controls in Default Window

**URL:** <https://discourse.processing.org/t/javafx-controls-in-default-window/46404>\
**Category:** Development\
**Created:** [May 17, 2025, 2:09pm UTC](https://discourse.processing.org/t/javafx-controls-in-default-window/46404 "2025-05-17T14:09:49Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![svan](https://avatars.discourse-cdn.com/v4/letter/s/82dd89/32.png) [@svan](https://discourse.processing.org/u/svan)\
**Post date:** [May 18, 2025, 4:10pm UTC](https://discourse.processing.org/t/javafx-controls-in-default-window/46404/3 "2025-05-18T16:10:58Z")

</div>

Finally figured out how to get root pane of PSurfaceFX; the following works on my system (macOS). Note that control is in center of window because default layout pane is a StackPane and it defaults to CENTER alignment (can be changed by code).

**JavaFX control in default Processing window:**

```auto
import javafx.scene.canvas.Canvas;
import javafx.scene.control.Button;
import javafx.scene.layout.Pane;

Canvas canvas;
Pane pane;

void setup(){
  size(350,200,FX2D);
  surface.setTitle("JavaFX control in Default Wnd");
  canvas = (Canvas)surface.getNative();
  println(canvas);
  pane = (Pane)canvas.getParent();
  println(pane);
  Button btn = new Button("Push Me");
  pane.getChildren().add(btn);
}

```

**Output:**

 ![jfx_dw](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/0/5/051abbc0d58b6c9eb71ecbf07dd053b4dc0cca95.png)

---

_[View the full topic](https://discourse.processing.org/t/javafx-controls-in-default-window/46404)._
