#Region Project Attributes
#MainFormWidth: 600
#MainFormHeight: 600
#End Region
Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Private xui As XUI
Private Button1 As B4XView
Private DatePicker1 As DatePicker
Private Label1 As Label
End Sub
Sub AppStart (Form1 As Form, Args() As String)
DateTime.DateFormat = "dd/MM/yyyy"
MainForm = Form1
MainForm.RootPane.LoadLayout("Layout1")
MainForm.Show
AddFocusListener(DatePicker1, "DatePicker1_FocusChanged")
End Sub
Sub Button1_Click
Label1.Text = DateTime.Date(DatePicker1.DateTicks)
End Sub
Sub AddFocusListener(view As Node, eventName As String)
Dim jo As JavaObject = view
Dim focusedProperty As JavaObject = jo.RunMethod("focusedProperty", Null)
Dim listener As Object = focusedProperty.CreateEventFromUI( _
"javafx.beans.value.ChangeListener", eventName, False)
focusedProperty.RunMethod("addListener", Array(listener))
End Sub
Sub DatePicker1_FocusChanged(HasFocus As Boolean)
If HasFocus = False Then
ForceDatePickerCommit(DatePicker1)
DatePicker1_ValueChanged(DatePicker1.DateTicks)
End If
End Sub
Sub ForceDatePickerCommit(dp As DatePicker)
Dim jo As JavaObject = dp
Dim editor As JavaObject = jo.RunMethod("getEditor", Null)
Dim text As String = editor.RunMethod("getText", Null)
Dim converter As JavaObject = jo.RunMethod("getConverter", Null)
Dim newValue As Object = converter.RunMethod("fromString", Array(text))
jo.RunMethod("setValue", Array(newValue))
End Sub
Private Sub DatePicker1_ValueChanged (Value As Long)
End Sub