B4J Tutorial SevenSegment

Is comes from this Github posting
Copy the attached Jar to your B4J library folder
It only shows "0" to "9" and "."
Enjoy

1758948548827.png



Sample Code:
#Region Project Attributes
    #MainFormWidth: 600
    #MainFormHeight: 600
#End Region

#AdditionalJar: SevenSegment
#AdditionalJar: javafx.base
#AdditionalJar: javafx.controls
#AdditionalJar: javafx.graphics

Sub Process_Globals
    Private fx As JFX
    Private MainForm As Form
    Private xui As XUI
    
    Dim ssb As JavaObject
    Dim ss0, ss1, ss2, ss3, ss4, ss5, ss6, ss7 As JavaObject
    
    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", 1000)
    
    ssb.Initializestatic("eu.hansolo.enzo.sevensegment.SevenSegmentBuilder")
    
    Dim segstyle As JavaObject
    segstyle.InitializeStatic("eu.hansolo.enzo.sevensegment.SevenSegment.SegmentStyle")
    
'    RED("red"),
'    GREEN("green"),
'    BLUE("blue"),
'    YELLOW("yellow"),
'    ORANGE("orange"),
'    CYAN("cyan"),
'    MAGENTA("magenta"),
'    WHITE("white"),
'    BLACK("black");
    
    ss0 = ssb.RunMethodJO("create", Null).RunMethodJO("character", Array("1")).runmethodJO("segmentStyle", Array(segstyle.GetField("BLACK"))).RunMethod("build", Null)
    ss1 = ssb.RunMethodJO("create", Null).RunMethodJO("character", Array("1")).runmethodJO("segmentStyle", Array(segstyle.GetField("BLACK"))).RunMethod("build", Null)
    ss2 = ssb.RunMethodJO("create", Null).RunMethodJO("character", Array(".")).runmethodJO("segmentStyle", Array(segstyle.GetField("BLACK"))).RunMethod("build", Null)
    ss3 = ssb.RunMethodJO("create", Null).RunMethodJO("character", Array("0")).runmethodJO("segmentStyle", Array(segstyle.GetField("BLACK"))).RunMethod("build", Null)
    ss4 = ssb.RunMethodJO("create", Null).RunMethodJO("character", Array("0")).runmethodJO("segmentStyle", Array(segstyle.GetField("BLACK"))).RunMethod("build", Null)
    ss5 = ssb.RunMethodJO("create", Null).RunMethodJO("character", Array(".")).runmethodJO("segmentStyle", Array(segstyle.GetField("BLACK"))).RunMethod("build", Null)
    ss6 = ssb.RunMethodJO("create", Null).RunMethodJO("character", Array("0")).runmethodJO("segmentStyle", Array(segstyle.GetField("BLACK"))).RunMethod("build", Null)
    ss7 = ssb.RunMethodJO("create", Null).RunMethodJO("character", Array("0")).runmethodJO("segmentStyle", Array(segstyle.GetField("BLACK"))).RunMethod("build", Null)
    
    MainForm.RootPane.AddNode(ss0, 2dip, 10dip, 50dip, 50dip)
    MainForm.RootPane.AddNode(ss1, 53dip, 10dip, 50dip, 50dip)
    MainForm.RootPane.AddNode(ss2, 104dip, 10dip, 50dip, 50dip)
    MainForm.RootPane.AddNode(ss3, 155dip, 10dip, 50dip, 50dip)
    MainForm.RootPane.AddNode(ss4, 206dip, 10dip, 50dip, 50dip)
    MainForm.RootPane.AddNode(ss5, 257dip, 10dip, 50dip, 50dip)
    MainForm.RootPane.AddNode(ss6, 308dip, 10dip, 50dip, 50dip)
    MainForm.RootPane.AddNode(ss7, 359dip, 10dip, 50dip, 50dip)
    
'    ss1.RunMethod("setDotOn", Array(True))
'    ss4.RunMethod("setDotOn", Array(True))
'    ss7.RunMethod("setDotOn", Array(True))

    t.Enabled = True
    
End Sub


Sub t_tick
    
    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
    
    ss0.RunMethod("setCharacter", Array(hr.SubString2(0,1)))
    ss1.RunMethod("setCharacter", Array(hr.SubString(1)))
    
    ss3.RunMethod("setCharacter", Array(minute.SubString2(0,1)))
    ss4.RunMethod("setCharacter", Array(minute.SubString(1)))
    
    ss6.RunMethod("setCharacter", Array(second.SubString2(0,1)))
    ss7.RunMethod("setCharacter", Array(second.SubString(1)))

    Log(hr & " " & minute & " " & second)
    
End Sub
 

Attachments

  • b4jSevenSegment.zip
    2.2 KB · Views: 6
  • SevenSegment.jar
    17.4 KB · Views: 6
Top