The ribbon is a control that was brought up with office and has since been getting progressively more important with its inclusion in windows built in apps like Windows Explorer or MS Paint.

It replaces the use of menus, occupies more space but favors discoverability.

And so I’ve decided to create this control in java, particularly by using javafx (image below).


(Click the image above to see it in it’s original size)

It is FXML friendly, the demo above was in itself created using FXML.

The source code is available at (the icons in the figure above are not included). There are a couple of demo apps that show how the ribbon is used.

It’s a project that is under development and so the API is very likely to change with time.

Update (5 March 2018): Check out the new Ribbon documentation page for updated information. Some things have changed.

22 thoughts on “Ribbon for java using javafx

  1. It replaces the use of menus, occupies more space but favors discoverability.”

    I find it far worse than menus for discoverability, (I can never find anything with MS Office anymore) and therefore the ribbon is worse in every way. But that seems to be the trend when Microsoft tries to innovate with UI instead of copying Apple. 🙂



    • That’s because you were used to the menus in previous versions of office. If you are using an app that has a ribbon for the first time, you’ll find it’s easier to find things.

  2. Hey,
    nice work! Is it somehow possible to hide/show the Ribbon when double-clicking the titles as in the MS programs?

  3. Please specify a license for this (something compatible with controlsfx for example). Currently the code is nice, but for a real project pretty useless (not for quality, but licensing).

  4. Hi guy,

    Thanks for the great jobs. Can you provide some documentation.

    A basic demo on how to use it.

    I tried something like this but it does not work

    //With all the necessary imports

    Ribbon ribbon = new Ribbon();

    RibbonTab homeTab = new RibbonTab(“Home”);
    RibbonGroup fileGroup = new RibbonGroup();

    ribbon.addTab( homeTab);


    //Rest of code

    And of course, i write the Ribbon::addTab() and RibbonTab::addRibbonGroup() method myself

    here are the content of the methods.

    public class Ribbon{
    public void addTab(RibbonTab tab){


    public class RibbonTab{
    public void addRibbonGroup(RibbonGroup ribbonGroup) {


    Best regards,

  5. Hey,

    very nice Job!

    Easy to use, works great and an excellent “how to” create own JavaFX Controls, using Control and SkinBase .
    Really gave me a lot of ideas, love your work here!

    Best Regards,

Leave a Reply

Your email address will not be published. Required fields are marked *