Hi,
not really sure how I should explain my problem as I can not share the code, lets try....
the app fetches data from a DB and fills a Tableview (not B4XTable) with data in the main form, part of the data are datetime fields from the DB
a 2nd Form holds only a datepicker
the form with the datepicker
showing the form is done here
this works as expected the Form does open and the date picker is usable..... BUT
changing the datetime field in the Mainform to a different format like:
breaks the App, launching the Form with the datepicker ends with this:
Waiting for debugger to connect...
Program started.
Error occurred on line: 35 (vacation) ====> frm.ShowAndWait
java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: HourOfDay
at java.base/java.time.LocalDate.get0(LocalDate.java:708)
at java.base/java.time.LocalDate.getLong(LocalDate.java:687)
at java.base/java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:308)
at java.base/java.time.format.DateTimeFormatterBuilder$NumberPrinterParser.format(DateTimeFormatterBuilder.java:2696)
at java.base/java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.format(DateTimeFormatterBuilder.java:2335)
at java.base/java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1843)
at java.base/java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1817)
at javafx.base/javafx.util.converter.LocalDateTimeStringConverter$LdtConverter.toString(LocalDateTimeStringConverter.java:240)
at javafx.base/javafx.util.converter.LocalDateStringConverter.toString(LocalDateStringConverter.java:139)
at javafx.base/javafx.util.converter.LocalDateStringConverter.toString(LocalDateStringConverter.java:45)
at javafx.controls/javafx.scene.control.skin.ComboBoxPopupControl.updateDisplayNode(ComboBoxPopupControl.java:337)
at javafx.controls/javafx.scene.control.skin.DatePickerSkin.getDisplayNode(DatePickerSkin.java:216)
at javafx.controls/javafx.scene.control.skin.ComboBoxBaseSkin.updateDisplayArea(ComboBoxBaseSkin.java:289)
at javafx.controls/javafx.scene.control.skin.ComboBoxBaseSkin.layoutChildren(ComboBoxBaseSkin.java:167)
at javafx.controls/javafx.scene.control.Control.layoutChildren(Control.java:601)
at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1204)
at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
at javafx.graphics/javafx.scene.Scene.doLayoutPass(Scene.java:576)
at javafx.graphics/javafx.scene.Scene.preferredSize(Scene.java:1748)
at javafx.graphics/javafx.scene.Scene$2.preferredSize(Scene.java:393)
at javafx.graphics/com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
at javafx.graphics/javafx.stage.Window$12.invalidated(Window.java:1086)
at javafx.base/javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.base/javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
at javafx.graphics/javafx.stage.Window.setShowing(Window.java:1174)
at javafx.graphics/javafx.stage.Window.show(Window.java:1189)
at javafx.graphics/javafx.stage.Stage.show(Stage.java:273)
at javafx.graphics/javafx.stage.Stage.showAndWait(Stage.java:463)
at anywheresoftware.b4j.objects.Form.ShowAndWait(Form.java:231)
at b4j.example.vacation._show(vacation.java:106)
at b4j.example.main$ResumableSub_MenuBar1_Action.resume(main.java:4012)
at b4j.example.main._menubar1_action(main.java:3318)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:629)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:237)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:109)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:98)
at anywheresoftware.b4a.BA$1.run(BA.java:234)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:834)
i have no idea whats going on, both form are complete separated ......
any help is appreciated
not really sure how I should explain my problem as I can not share the code, lets try....
the app fetches data from a DB and fills a Tableview (not B4XTable) with data in the main form, part of the data are datetime fields from the DB
a 2nd Form holds only a datepicker
the form with the datepicker
B4X:
Sub Class_Globals
Private fx As JFX
Private xui As XUI
Private frm As Form
Private jrdc As jRDC2
Private dpIntervalDone As DatePicker
End Sub
Public Sub Initialize (Parent As Form,left As String,top As String,width As String,height As String,titel As String,action As Int)
If frm.IsInitialized = False Then
frm.Initialize("frm", 800, 600)
frm.RootPane.LoadLayout("frmVacation")
End If
Dim ps As Screen = fx.PrimaryScreen
frm.WindowWidth = width
frm.WindowHeight = height
frm.WindowTop = ps.MinY + (ps.MaxY - frm.WindowHeight) / 2
frm.WindowLeft = ps.MinX + (ps.MaxX - frm.WindowWidth) / 2
frm.Title=titel
frm.SetFormStyle("DECORATED")
frm.Resizable = False
' frm.SetOwner(Parent)
jrdc.Initialize
End Sub
Public Sub Show' As Paint
frm.ShowAndWait
'The next line will only be executed after the form is closed.
End Sub
showing the form is done here
B4X:
Dim v1 As Vacation
v1.Initialize(MainForm,(MainForm.WindowLeft+15),(MainForm.windowTop+ 50),(800),(700),"Vacation",0)
v1.Show
this works as expected the Form does open and the date picker is usable..... BUT
changing the datetime field in the Mainform to a different format like:
B4X:
DateTime.DateFormat = "dd.MM.yy HH:mm"
breaks the App, launching the Form with the datepicker ends with this:
Waiting for debugger to connect...
Program started.
Error occurred on line: 35 (vacation) ====> frm.ShowAndWait
java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: HourOfDay
at java.base/java.time.LocalDate.get0(LocalDate.java:708)
at java.base/java.time.LocalDate.getLong(LocalDate.java:687)
at java.base/java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:308)
at java.base/java.time.format.DateTimeFormatterBuilder$NumberPrinterParser.format(DateTimeFormatterBuilder.java:2696)
at java.base/java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.format(DateTimeFormatterBuilder.java:2335)
at java.base/java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1843)
at java.base/java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1817)
at javafx.base/javafx.util.converter.LocalDateTimeStringConverter$LdtConverter.toString(LocalDateTimeStringConverter.java:240)
at javafx.base/javafx.util.converter.LocalDateStringConverter.toString(LocalDateStringConverter.java:139)
at javafx.base/javafx.util.converter.LocalDateStringConverter.toString(LocalDateStringConverter.java:45)
at javafx.controls/javafx.scene.control.skin.ComboBoxPopupControl.updateDisplayNode(ComboBoxPopupControl.java:337)
at javafx.controls/javafx.scene.control.skin.DatePickerSkin.getDisplayNode(DatePickerSkin.java:216)
at javafx.controls/javafx.scene.control.skin.ComboBoxBaseSkin.updateDisplayArea(ComboBoxBaseSkin.java:289)
at javafx.controls/javafx.scene.control.skin.ComboBoxBaseSkin.layoutChildren(ComboBoxBaseSkin.java:167)
at javafx.controls/javafx.scene.control.Control.layoutChildren(Control.java:601)
at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1204)
at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
at javafx.graphics/javafx.scene.Scene.doLayoutPass(Scene.java:576)
at javafx.graphics/javafx.scene.Scene.preferredSize(Scene.java:1748)
at javafx.graphics/javafx.scene.Scene$2.preferredSize(Scene.java:393)
at javafx.graphics/com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
at javafx.graphics/javafx.stage.Window$12.invalidated(Window.java:1086)
at javafx.base/javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.base/javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
at javafx.graphics/javafx.stage.Window.setShowing(Window.java:1174)
at javafx.graphics/javafx.stage.Window.show(Window.java:1189)
at javafx.graphics/javafx.stage.Stage.show(Stage.java:273)
at javafx.graphics/javafx.stage.Stage.showAndWait(Stage.java:463)
at anywheresoftware.b4j.objects.Form.ShowAndWait(Form.java:231)
at b4j.example.vacation._show(vacation.java:106)
at b4j.example.main$ResumableSub_MenuBar1_Action.resume(main.java:4012)
at b4j.example.main._menubar1_action(main.java:3318)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:629)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:237)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:109)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:98)
at anywheresoftware.b4a.BA$1.run(BA.java:234)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:834)
i have no idea whats going on, both form are complete separated ......
any help is appreciated