import javafx.ui.*; import javafx.ui.canvas.*; import java.lang.System; class Model { attribute messageText:String; attribute messageColor:Color; } Frame { var model = Model { messageText: "JavaFX Script has lots of cool UI components" messageColor: Color.BLUE } var msgTF:TextField = TextField { value: model.messageText columns: 30 background: Color.WHITE } var dlg:Dialog title: "Some Basic UI Components" width: 600 height: 200 background: Color.WHITE visible: true menubar: MenuBar { menus: [ Menu { text: "Options" mnemonic: KeyStroke.O items: [ MenuItem { text: "Text..." mnemonic: KeyStroke.T accelerator: Accelerator { modifier: KeyModifier.CTRL keyStroke: KeyStroke.T } action: function():Void { dlg = Dialog { modal: true title: "Enter Text" visible: true content: Box { orientation: Orientation.VERTICAL content: [ SimpleLabel { text: "Text:" }, msgTF ] } buttons: [ Button { text: "OK" defaultButton: true action: function():Void { model.messageText = msgTF.value; dlg.hide(); } }, Button { text: "Cancel" defaultCancelButton: true action: function():Void { dlg.hide(); } } ] }; } }, MenuItem { text: "Select Color..." mnemonic: KeyStroke.S accelerator: Accelerator { modifier: KeyModifier.CTRL keyStroke: KeyStroke.S } action: function():Void { ColorChooser { title: "Choose Text Color" initialColor: bind model.messageColor showDialog: true action: function(color:Color):Void { model.messageColor = color; } } } }, MenuItem { text: "Exit" mnemonic: KeyStroke.X action: function():Void { System.exit(0); } }, ] } ] } content: Canvas { content: Text { font: Font { face: FontFace.MICROSOFT_SANS_SERIF style: FontStyle.BOLD; size: 24 } x: 20 y: 40 stroke: bind model.messageColor fill: bind model.messageColor content: bind model.messageText } } onClose: function():Void { System.exit(0); } }