B4J Library Jfoenix Wrap

Discussion in 'B4J Libraries & Classes' started by Enrique Gonzalez R, May 20, 2017.

  1. Enrique Gonzalez R

    Enrique Gonzalez R Well-Known Member Licensed User


    This is my very first attempt to create a wrap for a library (more of a proof of concept), It is based on this project:



    JfxCheckBox, it is a custom view (with designer support, no properties yet) that allows to set colors for check and unchecked states, to catch the event use the same as the normal checkbox or the already implemented jfxChecked_change event

    jfxDialog, this one is a class that will show a non blocking msgbox style dialog, you can upload a pane to set its height and width and load a layout within, the API needs a pane that works as an owner of the dialog. To catch the event here, just use eventName_closed event (the one in the form events)
    if you want jfxDialog to work like msgbox just write:

    wait for jfxdialog_closed
    edit V1.01
    in this version we have JFXDatePicker and JFXTimePicker
    Date Picker will return the date ticks like the normal datepicker
    but Time Picker event will return a string representation of the time.


    edit V1.02

    This version comes with JFXBadge and JFXRippler,

    There is a nuisance with both classes, they remove the original node of the panel and reinsert them as part of the new node, it will conserve the very same spot and anchors tho. This means that for now only already inserted nodes can be badged/ripplyfied

    In the JfoenixTester project, there are some methods that helps with finding if the original node is part of this classes.


    If you want any other feature implemented or more methods for the currently available, you can ask for it.

    Attached Files:

    Last edited: May 22, 2017
    Tayfur, Don Oso, Mashiane and 16 others like this.
  2. alwaysbusy

    alwaysbusy Expert Licensed User

    Enrique Gonzalez R likes this.
  3. giannimaione

    giannimaione Well-Known Member Licensed User

    ...JfxCheckBox, jfxDialog, .... and soon JFXRippler, JFXCheckBox
    Enrique Gonzalez R likes this.
  4. DonManfred

    DonManfred Expert Licensed User

    JFXCheckbox is already there
    Enrique Gonzalez R likes this.
  5. jmon

    jmon Well-Known Member Licensed User

    Thanks a lot Enrique! That's amazing!
  6. Enrique Gonzalez R

    Enrique Gonzalez R Well-Known Member Licensed User

    Thanks Jmon!

    I like so far how it is going, now i respect even more you and the other Library creators.
    amn.nma67, jmon and inakigarm like this.
  7. Enrique Gonzalez R

    Enrique Gonzalez R Well-Known Member Licensed User

    Rippler is there now on V1.02!
    jmon, giannimaione and inakigarm like this.
  8. inakigarm

    inakigarm Well-Known Member Licensed User

    Good job Enrique !
  9. Enrique Gonzalez R

    Enrique Gonzalez R Well-Known Member Licensed User

    Thank you for support @inakigram!
  10. CanguroCode

    CanguroCode Active Member Licensed User

    Hi!, this is still alive? I need the other components (JFXSlider)

    Thanks for you work
  11. Enrique Gonzalez R

    Enrique Gonzalez R Well-Known Member Licensed User


    thanks to you for taking interest, unfortunately i lost the code due to a my lack of vision when formmating my computer, but i created a JFXSlider Class for your use, it has designer support, properties and values.

    Hope you find it useful.

    If you need something else you can ask.

    Attached Files:

  12. CanguroCode

    CanguroCode Active Member Licensed User

    Gracias hermano, que detalle lo de la clase! que mala suerte lo de la perdida de código, te sugiero hagas versiones (Gitlab, es gratis y privado). No quiero ocasionarte trabajo adicional, pensaba ya lo tenias hecho, trataré de hacer la librería (o con la clase que me pasaste de ahi basarme) para los demás componentes si tengo dudas te consulto.

    Excelente trabajo!
  13. Enrique Gonzalez R

    Enrique Gonzalez R Well-Known Member Licensed User

    Si, ya tengo gitlab y estoy aprendiendo (y acostumbrandome) a usar git, pero te hablo de hace poco, uno o dos meses top. En el caso de Jfoenix el problema es que no hay JavaDocs pero en el caso de este Slider es un wrap del slider original de JavaFX.

    Te recomiendo Luyten para que puedas decompilar el jar de JFoenix y ver que metodos publicos tiene
  14. CanguroCode

    CanguroCode Active Member Licensed User

    Ok ok, no utilizo luyten (pero lo probaré) uso el ide de intellij ahi mismo permite decompilar. Para que no sufras usando git, checa gitkraken https://www.gitkraken.com/ lo utilizo para produccion y desarrollo dale una oportunidad, gratis, es visual y permite interactuar con gitlab y si encuentras algo mejor pasa el dato ;)

    Saludos hermano
    Enrique Gonzalez R likes this.
  15. inakigarm

    inakigarm Well-Known Member Licensed User

    Hi Enrique:

    I've downloaded jfoenix.jar (https://search.maven.org/remotecontent?filepath=com/jfoenix/jfoenix/8.0.7/jfoenix-8.0.7.jar) from the Github link and tried to run the B4J app but I get this error:

    main._appstart (java line: 76)
    java.lang.NoSuchMethodError: com.jfoenix.skins.JFXDatePickerSkin.getEditableInputNode()Ljavafx/scene/control/TextField;
    at com.jfoenix.skins.JFXDatePickerSkin.getDisplayNode(JFXDatePickerSkin.java:211)
    at com.sun.javafx.scene.control.skin.ComboBoxBaseSkin.updateDisplayArea(ComboBoxBaseSkin.java:141)
    at com.sun.javafx.scene.control.skin.ComboBoxBaseSkin.computePrefWidth(ComboBoxBaseSkin.java:183)
    at javafx.scene.control.Control.computePrefWidth(Control.java:535)
    at javafx.scene.Parent.prefWidth(Parent.java:904)
    at javafx.scene.layout.Region.prefWidth(Region.java:1419)
    at javafx.scene.Node.autosize(Node.java:2865)
    at javafx.scene.Parent.layoutChildren(Parent.java:1105)
    at javafx.scene.Parent.layout(Parent.java:1076)
    at javafx.scene.Parent.layout(Parent.java:1082)
    at javafx.scene.Scene.doLayoutPass(Scene.java:552)
    at javafx.scene.Scene.preferredSize(Scene.java:1646)
    at javafx.scene.Scene.impl_preferredSize(Scene.java:1720)
    at javafx.stage.Window$9.invalidated(Window.java:834)
    at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109)
    at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:144)
    at javafx.stage.Window.setShowing(Window.java:910)
    at javafx.stage.Window.show(Window.java:925)
    at javafx.stage.Stage.show(Stage.java:256)
    at anywheresoftware.b4j.objects.Form.Show(Form.java:205)
    at b4j.example.main._appstart(main.java:76)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:90)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:77)
    at b4j.example.main.start(main.java:38)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$159(LauncherImpl.java:863)
    at com.sun.javafx.application.LauncherImpl$$Lambda$53/479851444.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$172(PlatformImpl.java:326)
    at com.sun.javafx.application.PlatformImpl$$Lambda$45/1681433494.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$170(PlatformImpl.java:295)
    at com.sun.javafx.application.PlatformImpl$$Lambda$48/767715469.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$171(PlatformImpl.java:294)
    at com.sun.javafx.application.PlatformImpl$$Lambda$46/1685538367.run(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$145(WinApplication.java:101)
    at com.sun.glass.ui.win.WinApplication$$Lambda$36/2058534881.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)

    Maybe the lib has to be updated to the new jfoenix.jar? Are you working on other components (like listview, tree table view,etc..) avalaible on jfoenix?

  16. GanjaKyp

    GanjaKyp Member

    Good evening, great library!
    Is it possible to wrap JFXTreeTableView, JFXNodesList and JFXDialog?
  17. DonManfred

    DonManfred Expert Licensed User

    1. They are not related to the lib posted here.
    2. You should always create a new thread for any question you have.
    3. You should post a Thread in the bugs and Wish-Forum about your wish.
  18. Enrique Gonzalez R

    Enrique Gonzalez R Well-Known Member Licensed User

    Thanks @DonManfred for the follow up, but indeed all those 3 views are part of the phoenix library.

    I think it is posible to wrap them (not so much with the JFXTreeTableView) but it is a slow process, i will try on the weekend. (at least one)
  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