B4J Question Chart JavaFx (javaobject) remove point

Discussion in 'B4J Questions' started by ivanomonti, Apr 10, 2015.

  1. ivanomonti

    ivanomonti Well-Known Member Licensed User

    how can I remove the point (0) by a line graph of the chart javafx!!

    {I have to create an effect like oscilloscope}


    Code:
    Sub Class_Globals
        
    Private fx As JFX
        
    Private OscilloscopeForm As Form
        
    Private PaneMainForm As Pane
        
    Private l1,l2,l3,l4 As List
        
    Private b1,b2 As Button
        
    Private XAxis,YAxis,LineChart,Series1,Series2,Series3,Series4,GetData1,GetData2,GetData3,GetData4,LCGetData As JavaObject
        
    Private tm As Timer
    End Sub

    Public Sub Initialize
       
        l1.Initialize
        l2.Initialize
        l3.Initialize
        l4.Initialize

        OscilloscopeForm.Initialize(
    "OscilloscopeForm",800,400)
        OscilloscopeForm.Show
       
        PaneMainForm.Initialize(
    "PaneMainForm")
        OscilloscopeForm.RootPane.AddNode(PaneMainForm,
    0,0,OscilloscopeForm.Width,OscilloscopeForm.Height-42)
       
        
    Private l,t,w,h As Int
       
        l = 
    10
        t = OscilloscopeForm.Height - 
    42
        w = (OscilloscopeForm.Width/
    2)-20
        h = 
    32
       
        b1.Initialize(
    "b1")
        b1.Text = 
    "Start"
        OscilloscopeForm.RootPane.AddNode(b1,l,t,w,h)
       
        l = OscilloscopeForm.Width/
    2
       
        b2.Initialize(
    "b2")
        b2.Text = 
    "Close"
        OscilloscopeForm.RootPane.AddNode(b2,l,t,w,h)
       
        chartInitialize
       
        tm.Initialize(
    "tm",100)
        tm.Enabled = 
    True
       
    End Sub

    Sub tm_tick
        l1.Add(
    Rnd(1,2048))
        l2.Add(
    Rnd(1,2048))
        l3.Add(
    Rnd(1,2048))
        l4.Add(
    Rnd(1,2048))
        serie(
    1,l1.Size-1)
        serie(
    2,l2.Size-1)
        serie(
    3,l3.Size-1)
        serie(
    4,l4.Size-1)
    End Sub

    Sub chartInitialize As Boolean
       
       
        XAxis.InitializeNewInstance(
    "javafx.scene.chart.CategoryAxis",Null)
        YAxis.InitializeNewInstance(
    "javafx.scene.chart.NumberAxis",Null)
        LineChart.InitializeNewInstance(
    "javafx.scene.chart.LineChart",Array As Object(XAxis,YAxis))
        LineChart.RunMethod(
    "setTitle",Array As Object("Simulator Oscilloscope"))
       
        XAxis.RunMethod(
    "setLabel",Array As Object("Value"))

        Series1.InitializeNewInstance(
    "javafx.scene.chart.XYChart.Series",Null)
        Series1.RunMethod(
    "setName",Array As Object("Canale" & 1))
        GetData1=Series1.RunMethod(
    "getData",Null)
       
        Series2.InitializeNewInstance(
    "javafx.scene.chart.XYChart.Series",Null)
        Series2.RunMethod(
    "setName",Array As Object("Canale" & 2))
        GetData2=Series2.RunMethod(
    "getData",Null)

        Series3.InitializeNewInstance(
    "javafx.scene.chart.XYChart.Series",Null)
        Series3.RunMethod(
    "setName",Array As Object("Canale" & 3))
        GetData3=Series3.RunMethod(
    "getData",Null)
       
        Series4.InitializeNewInstance(
    "javafx.scene.chart.XYChart.Series",Null)
        Series4.RunMethod(
    "setName",Array As Object("Canale" & 4))
        GetData4=Series4.RunMethod(
    "getData",Null)
       
        PaneMainForm.RemoveAllNodes
        PaneMainForm.AddNode(LineChart,
    0,40,OscilloscopeForm.Width,OscilloscopeForm.Height-100)
       
        LCGetData=LineChart.RunMethod(
    "getData",Null)
        LCGetData.RunMethod(
    "addAll",Array As Object(Array As Object(Series1,Series2,Series3,Series4)))

        
    Return True
       
    End Sub

    Sub serie(i As Int,index As Int)
       
        
    Dim s As String = index
        
    Dim ss As Int
       
        
    Select i
       
        
    Case 1
            ss = l1.Get(index)
            AddData(GetData1,s,ss)
            GetData1=Series1.RunMethod(
    "getData",Null)
        
    Case 2
            ss = l2.Get(index)
            AddData(GetData2,s,ss)
            GetData2=Series2.RunMethod(
    "getData",Null)
        
    Case 3
            ss = l3.Get(index)
            AddData(GetData3,s,ss)
            GetData3=Series3.RunMethod(
    "getData",Null)
        
    Case 4
            ss = l4.Get(index)
            AddData(GetData4,s,ss)
            GetData4=Series4.RunMethod(
    "getData",Null)
        
    End Select
       
    End Sub

    Sub AddData(xGetData As JavaObject,index As String,Value As Int)
        
    Dim Data As JavaObject
        Data.InitializeNewInstance(
    "javafx.scene.chart.XYChart.Data",Array As Object(index,Value))
        xGetData.RunMethod(
    "add",Array As Object(Data))
    End Sub
     
    Mashiane likes this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice