Thursday, 22 September 2016

FXBilling - A free and open-sourced JavaFX Billing Application

Hi, I am happy to share with all the readers of my blog a billing application named FXBilling that I have developed in JavaFX. Before I tell more about this application, please have a look at its screenshot below:

More screenshots of the application can be viewed here.

This application is targeted at small-scaled Indian Traders, and is a JavaFX port of my earlier released C# billing application named Biller. The features include invoice generation & printing, invoice search, payment receipt, payment search, customer account lookup & printing, database backup & restoration.

I have taken every care to make this application bug-free; however, a bug or two may still have crept in. So, if you come across any bug, please let me know.

The Java version 8 (update 72) has been used to develop this application. Hence, you will require this or a newer version of Java to run the application. You can download Java SE Runtime Environment (JRE) from here.

FXBilling Executable Download Link

FXBilling Source Code Download Link

FXBilling Windows Installer Link

I trust that you will find this application useful whether you are a developer or a user, and you will also enjoy using it as much as I have enjoyed developing it. Do provide your feedback through the comments section below.

Thanks for your time!


  1. hi,
    just checked your javafx billing application and i think it looks cool, i have a couple of questions:
    1- what data base are you using ?
    2- what library/tool do you use to create reports?
    3- the data entry forms seems to be written in html are you using a webview to create your forms ??

  2. Thanks that you found the application cool! As regards your queries:

    1)I am using the Apache Derby database (
    2)To create reports, I am using JasperReports (
    3)The data entry forms have not been written in HTML; instead, they have been written in FXML ( I am not using at all the WebView component to create or display the forms. The entire application is being displayed in a Scene that is hosted by a Stage. The Scene contains a TabView component, and different forms are displayed as tabs of this component.

    Trust this answers all your queries :-)

  3. Under what license are you releasing this ? Shall I customize to my own for a small shop and use it ?

    1. Hi, the application is free of all licenses. You can customize it and use it. No strings attached :-)

  4. Thank you for your software Dinesh! Look's great. Few days ago I'm download it and porting to Spanish language...I'm living in Entre Ríos, Argentina...
    I must change some things, for example, the model in Apache Derby and some things in FXML files (Gluon SceneBuilder not loading all FXML files)
    You can reach me at or
    Stay tuned Dinesh!
    Thank you again!

    1. Hi Ernesto, You will need to change the locale of the Apache Derby database whilst creating it. Apart from that, you will need to replace the Indian Currency Sign (Rupee) with that of your country's currency sign.
      As regard ScreenBuilder, I also face problem with it in opening many FXML files, and therefore I don't use it. All the FXML files used in the application are hand-crafted. They have been created in the Netbeans' IDE text editor; no graphic editor involved. Hand-written FXML are devoid of bloat, easy-to-understand and also reinforces learning! Just my two cents :)

    2. Hi Dinesh! Certainly I must agree with you about FXML files...respect to the database, all changes made and work fine!
      I'm very excited re-coding you code and learn JavaFX! The beauty of simple things!
      Thank you AGAIN Dinesh...God bless you!

  5. Hi sir, why i can't open the fxml files?? im getting an error when i opened it. what scene builder and jdk version are you using? please help..i really like your design thank you!

  6. Hello, as stated in the blog post, the JDK version used is 8 (update 72). It is represented as 1.8.0_72. You could use this or a newer version to run the app. As regards you not being able to open the fxml files, I have clarified in the comment dated 6th January that I also face problem in opening files in the Scene Builder, and therefore I don't use it. All the files used in the application are hand-crafted.
    To get insight on issue you are facing with the Scene Builder, open a new thread in, or check existing relevant threads there.
    Hope this helps.

    1. oh sorry i didn;t read the content.i got able to open the fxml files by updating my scene builder. thank you so much.

  7. Very good contribution to the community, it looks very promising and I will certainly use it for my own education. Just one thing I am though encountering: in file fxbilling.database/, at line "import;" (line 18), I get "cannot find symbol", though I have installed derby and added to the path too, readded it as a library in the project properties (I use NetBeans). I am still green to programming and Java but can't think of something I am missing. Any enlightment? Thank you so much in advance.

    1. Sorry, it seems I found out: the ij tool is included in derbytools.jar, not derby.jar nor derbyclient.jar as I first understood. Adding this library in the project properties (NetBeans) worked and the error disappeared. Cheers.

  8. hi sir hope to see more open source projects from you.

  9. Thanks for your source code. However, I need some help as how new customer fxml is working inserting the listview. Which method is being used to insert a new customer in the listview.

  10. How i can change the currency logo???

  11. Hi,
    To get your currency symbol, you can use the code like this:

    Currency.getInstance(new Locale("en", "IN")).getSymbol();
    /*Replace Indian locale with your country's locale*/

    I however have not used this method as this returns me the old Indian currency symbol (Rs.). To get the new Indian currency symbol, I am directly using its Unicode value which is 20b9.

  12. Hi, Thank you for your grate effort.

    I'm getting an error which saying

    WARNING: Could not open windows registry node Software\JavaSoft\Prefs\fxbilling at root 0x80000002. Windows RegOpenKey(...)

    Netbeans 8.2, Java 1.8

    Do you have any idea where it coming from ?