//Using new JavaFX UI Controls import javafx.scene.*; import javafx.scene.image.*; import javafx.ext.swing.*; import javafx.stage.*; import javafx.geometry.*; import javafx.scene.paint.*; import javafx.scene.shape.*; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.scene.input.*; var textVal: String="Not Clicked"; var image = Image { url: "{__DIR__}winter.jpg" } var slider: Slider; class CustomControl extends CustomNode { var text: String; var content: Node[]; override function create() { HBox { spacing: 10 content: bind [ Label { text: text } content ] } } } Stage{ y: 50 title :"New JavaFX UI Tools" scene: Scene{ content: VBox{ translateX: 10 translateY: 10 spacing: 20 content:[ CustomControl{ text: "Text Box Control" content:[ TextBox{ } ] } CustomControl{ var tB: ToggleButton; text: "Buttons" content:[ Button{ strong: true text: "Strong Button" }, tB=ToggleButton{ text: "Toggle Button" opacity: 0.7 onMouseClicked: function(mEvt: MouseEvent):Void{ if(tB.selected==true){ textVal="Clicked"; } else{ textVal="Not Clicked"; } } }, Label{ text: bind textVal } ] }, CustomControl{ var chkBox: CheckBox; var chkVal: String=""; text: "Check Box" content:[ chkBox=CheckBox{ text: "Tristate Check Box" allowTriState: true onMouseClicked: function(mEvt: MouseEvent):Void{ if(chkBox.selected==true and chkBox.defined==true){ chkVal="Checked"; }else if(chkBox.selected==false and chkBox.defined==true){ chkVal="UnChecked"; } else if(chkBox.defined==false){ chkVal="Undefined"; } } }, Label{ text: bind chkVal } ] }, CustomControl{ text:"List View" content:ListView{ width: bind 200 height: bind 100 items:[ "Button", "ToggleButton", "Label", "CheckBox", "Progress Bar", "Progress Indicator", "Slider", "Radio Button", ] } }, CustomControl{ text: "Slider" content: [ slider=Slider{ min:0 max:360 },Panel{ content: ImageView{ image: image fitWidth: 100 preserveRatio: true smooth: true rotate: bind slider.value } },Label{ text: bind "{slider.value}" } ] }, CustomControl{ text: "Progress Bar" content: VBox{ spacing: 8 content:[ ProgressBar { progress: bind slider.value / slider.max }, ProgressBar { progress: -1 } ] } }, CustomControl{ text:"Progress Indicator" content: VBox{ spacing: 8 content:[ ProgressIndicator { progress: bind slider.value / slider.max }, ProgressIndicator { progress: -1 } ] } } ]//End of Main VBox } } }