It comes from here. Not sure that I have it 100% correct - maybe some members can improve on this.
Jar attached - copy it to your B4J additional libs folder.
Have also added the Java code and the resources folder.
Sample Code:
Jar attached - copy it to your B4J additional libs folder.
Have also added the Java code and the resources folder.
Sample Code:
Sample Code:
#Region Project Attributes
#MainFormWidth: 800
#MainFormHeight: 600
#End Region
#AdditionalJar: FlipClock
Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Private xui As XUI
Dim WEEK_DAYS(7) As String
Dim MONTHS(12) As String
Dim dayLeft, dayMid, dayRight, dateLeft, dateRight, monthLeft, monthMid, monthRight, hourLeft, hourRight, minLeft, minRight, secLeft, secRight As JavaObject
Dim dayLeftB, dayMidB, dayRightB, dateLeftB, dateRightB, monthLeftB, monthMidB, monthRightB, hourLeftB, hourRightB, minLeftB, minRightB, secLeftB, secRightB As JavaObject
Dim fliptime As Double
Dim t As Timer
End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
MainForm.RootPane.LoadLayout("Layout1")
MainForm.Show
t.Initialize("t", 500)
fliptime = 300
WEEK_DAYS = Array As String("SUN","MON","TUE","WED","THU","FRI","SAT")
MONTHS = Array As String("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC")
dayLeft.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
dayLeftB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
dayLeft = dayLeftB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(dayLeft.GetField("ALPHANUMERIC"))).RunMethodJO("textColor", Array(fx.Colors.Black)) _
.RunMethodJO("withFixture", Array(True)) _
.RunMethodJO("wordMode", Array(True)) _
.RunMethodJO("darkFixture", Array(False)) _
.runMethodJO("squareFlaps", Array(True)) _
.RunMethodJO("flapColor", Array(fx.Colors.Green)) _
.RunMethodJO("keepAspect", Array(True)) _
.RunMethod("build", Null)
dayMid.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
dayMidB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
dayMid = dayMidB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(dayMid.GetField("ALPHANUMERIC"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
dayRight.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
dayRightB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
dayRight = dayRightB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(dayRight.GetField("ALPHANUMERIC"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
dateLeft.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
dateLeftB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
dateLeft = dateLeftB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(dateLeft.GetField("ALPHANUMERIC"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
dateRight.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
dateRightB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
dateRight = dateRightB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(dateRight.GetField("ALPHANUMERIC"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
monthLeft.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
monthLeftB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
monthLeft = dateLeftB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(monthLeft.GetField("ALPHANUMERIC"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
monthMid.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
monthMidB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
monthMid = monthMidB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(monthMid.GetField("ALPHANUMERIC"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
monthRight.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
monthRightB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
monthRight = monthRightB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(monthRight.GetField("ALPHANUMERIC"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
hourLeft.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
hourLeftB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
hourLeft = hourLeftB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(hourLeft.GetField("TIME_0_TO_5"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
hourRight.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
hourRightB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
hourRight = hourRightB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(hourRight.GetField("TIME_0_TO_9"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
minLeft.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
minLeftB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
minLeft = minLeftB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(minLeft.GetField("TIME_0_TO_5"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
minRight.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
minRightB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
minRight = minRightB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(minRight.GetField("TIME_0_TO_9"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
secLeft.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
secLeftB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
secLeft = secLeftB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(secLeft.GetField("TIME_0_TO_5"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
secRight.InitializeNewInstance("eu.hansolo.enzo.splitflap.SplitFlap", Null)
secRightB.InitializeStatic("eu.hansolo.enzo.splitflap.SplitFlapBuilder")
secRight = secRightB.RunMethodJO("create", Null).RunMethodJO("flipTime", Array(fliptime)).RunMethodJO("selection", Array(secRight.GetField("TIME_0_TO_9"))).RunMethodJO("textColor", Array(fx.Colors.Black)).RunMethod("build", Null)
MainForm.RootPane.AddNode(dayLeft,2dip, 2dip, 50dip, 50dip)
MainForm.RootPane.AddNode(dayMid,53dip, 2dip, 50dip, 50dip)
MainForm.RootPane.AddNode(dayRight,104dip, 2dip, 50dip, 50dip)
MainForm.RootPane.AddNode(dateLeft,165dip, 2dip, 50dip, 50dip)
MainForm.RootPane.AddNode(dateRight,216dip, 2dip, 50dip, 50dip)
MainForm.RootPane.AddNode(monthLeft,287dip, 2dip, 50dip, 50dip)
MainForm.RootPane.AddNode(monthMid,338dip, 2dip, 50dip, 50dip)
MainForm.RootPane.AddNode(monthRight,389dip, 2dip, 50dip, 50dip)
MainForm.RootPane.AddNode(hourLeft, 2dip, 60dip, 50dip, 50dip)
MainForm.RootPane.AddNode(hourRight, 53dip, 60dip, 50dip, 50dip)
MainForm.RootPane.AddNode(minLeft, 104dip, 60dip, 50dip, 50dip)
MainForm.RootPane.AddNode(minRight, 155dip, 60dip, 50dip, 50dip)
MainForm.RootPane.AddNode(secLeft, 206dip, 60dip, 50dip, 50dip)
MainForm.RootPane.AddNode(secRight, 257dip, 60dip, 50dip, 50dip)
setDateTime
Sleep(0)
t.Enabled = True
End Sub
Sub t_tick
setDateTime
End Sub
Sub setDateTime
dayLeft.RunMethod("setTextColor",Array(fx.Colors.Cyan))
dayMid.RunMethod("setTextColor",Array(fx.Colors.Cyan))
dayRight.RunMethod("setTextColor", Array (fx.Colors.Cyan))
dateLeft.RunMethod("setTextColor",Array(fx.Colors.Blue))
dateRight.RunMethod("setTextColor",Array(fx.Colors.Blue))
Dim mnth As Int = DateTime.GetMonth(DateTime.Now)
Dim month As String = (MONTHS(mnth-1))
monthLeft.RunMethod("setText", Array(month.SubString2(0,1)))
monthMid.RunMethod("setText", Array(month.SubString2(1,2)))
monthRight.RunMethod("setText", Array(month.SubString(2)))
monthLeft.RunMethod("setTextColor", Array(fx.Colors.Red))
monthMid.RunMethod("setTextColor", Array(fx.Colors.Red))
monthRight.RunMethod("setTextColor", Array(fx.Colors.Red))
hourLeft.RunMethod("setTextColor", Array(fx.Colors.Yellow))
hourRight.RunMethod("setTextColor", Array(fx.Colors.Yellow))
minLeft.RunMethod("setTextColor", Array(fx.Colors.Green))
minRight.RunMethod("setTextColor", Array(fx.Colors.Green))
secLeft.RunMethod("setTextColor", Array(fx.Colors.Magenta))
secRight.RunMethod("setTextColor", Array(fx.Colors.Magenta))
Dim hr As String = DateTime.GetHour(DateTime.Now)
If hr.Length < 2 Then hr = "0" & hr
Dim minute As String = DateTime.GetMinute(DateTime.Now)
If minute.Length < 2 Then minute = "0" & minute
Dim second As String = DateTime.GetSecond(DateTime.Now)
If second.Length < 2 Then second = "0" & second
hourLeft.RunMethod("setText", Array(hr.SubString2(0,1)))
hourRight.RunMethod("setText", Array(hr.SubString(1)))
minLeft.RunMethod("setText", Array(minute.SubString2(0,1)))
minRight.RunMethod("setText", Array(minute.SubString(1)))
secLeft.RunMethod("setText", Array(second.SubString2(0,1)))
secRight.RunMethod("setText", Array(second.SubString(1)))
Dim weekday As Int = DateTime.GetDayOfWeek(DateTime.Now)
dayLeft.RunMethod("setText", Array(WEEK_DAYS(weekday - 1).SubString2(0,1)))
dayMid.RunMethod("setText", Array(WEEK_DAYS(weekday - 1).SubString2(1,2)))
dayRight.RunMethod("setText", Array(WEEK_DAYS(weekday - 1).SubString(2)))
Dim monthday As String = DateTime.GetDayOfMonth(DateTime.Now)
If monthday.Length < 2 Then monthday = "0" & monthday
dateLeft.RunMethod("setText", Array(monthday.SubString2(0,1)))
dateRight.RunMethod("setText", Array(monthday.SubString(1)))
Log(hr & " " & minute & " " & second)
End Sub