B4J Question Inline java code doesn't compile

khaleel

Member
Licensed User
Longtime User
I don't know why this piece of code doesn't compile.
I'm trying to add a ChangeListener for value property of a DatePicker control.

#if java
import anywheresoftware.b4a.keywords.Common;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.event.ActionEvent;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;

import javafx.beans.value.ChangeListener ;




public void test(DatePicker dp) {


dp.valueProperty().addListener(new ChangeListener<int>() {
@override
public void changed(ObservableValue<? extends int> observable, int oldValue, int newValue) {
System.out.println("Selected value : " + newValue);
ba.raiseEventFromUI(this, "somefunc", newValue);
}

} );


}

#End If



upload_2017-4-21_14-58-59.png
 

Daestrum

Expert
Licensed User
Longtime User
Not sure it has a changed event, try this
B4X:
#if java
import anywheresoftware.b4a.keywords.Common;
import javafx.scene.control.*;
import javafx.event.*;
public static void test(final DatePicker dp) {
dp.setOnAction(new EventHandler() {
  public void handle(Event t) {
  System.out.println("Selected date: " + dp.getValue() + " event " + t);
  //your ba raise event goes here
  }
});
}
#End If
 
Upvote 0

khaleel

Member
Licensed User
Longtime User
Than you all for your responses.
I have managed to do it like the following:
though I'm not sure of which imports are really required by this to work fine.


#if java

import anywheresoftware.b4a.keywords.Common;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.event.ActionEvent;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;


import java.lang.Object;
import java.time.LocalDate;



public void test(DatePicker dp) {

dp.valueProperty().addListener(new ChangeListener<LocalDate>() {

@override
public void changed(ObservableValue<? extends LocalDate> arg0,LocalDate arg1, LocalDate arg2) {
ba.raiseEventFromUI(this, "somefunc", arg2);
}
});



}

#End If
 
Upvote 0
Top