Oh look, you can get two windows at one time:
# Uses Imported mode for py5
import javafx.stage.Stage;
_wndW = 600
_wndH = 250
def myBtnAction(event):
print("btn hit.")
def settings():
size(_wndW, _wndH, FX2D)
def setup():
window_title("Default window")
stage = javafx.stage.Stage()
stage.setTitle("JavaFX Drawing Demo")
pane = javafx.scene.layout.Pane()
# Button
btn = javafx.scene.control.Button("Button")
btn.setLayoutX(90)
btn.setLayoutY(10)
btn.setOnAction(myBtnAction)
pane.getChildren().add(btn)
# Text
txt = javafx.scene.text.Text(130, 80, "Welcome to JavaFX!")
txt.setFont(javafx.scene.text.Font(35))
pane.getChildren().add(txt)
# Rectangle
r = javafx.scene.shape.Rectangle(50, 130, 100, 50)
r.setStroke(javafx.scene.paint.Color.color(0.0, 1.0, 0.0, 0.95))
r.setStrokeWidth(5)
r.setArcWidth(15)
r.setArcHeight(15)
pane.getChildren().add(r);
# Circle
myCircle = javafx.scene.shape.Circle(250, 160, 40)
myCircle.setFill(javafx.scene.paint.Color.DARKRED)
myCircle.setStrokeWidth(6)
myCircle.setStroke(javafx.scene.paint.Color.DARKSLATEBLUE)
pane.getChildren().add(myCircle)
# Triangle
polygon = javafx.scene.shape.Polygon();
polygon.getPoints().addAll([ 380.0, 100.0, 330.0, 200.0, 430.0, 200.0 ])
polygon.setFill(javafx.scene.paint.Color.GREEN)
pane.getChildren().add(polygon)
# Line
ln = javafx.scene.shape.Line(450,150,550,150)
ln.setStroke(javafx.scene.paint.Color.color(1.0, 0.0, 0.0, 1.0))
ln.setStrokeWidth(10)
pane.getChildren().add(ln)
scene = javafx.scene.Scene(pane, _wndW, _wndH, javafx.scene.paint.Color.ALICEBLUE)
stage.setScene(scene)
stage.show()
def draw():
fill(0)
text_size(32)
text("FX2D Renderer Text",80,60)
fill(255,0,0)
circle(100,150,100)
fill(0,0,255)
triangle(220,100,170,200,270,200)
fill(0,255,0)
rect(300,100,100,100)
Output:
