MaterialFX is an open source Java library which provides material design components for JavaFX

Related tags

GUI java library ui javafx
Overview

HitCount GitHub Workflow Status Sonatype Nexus (Releases) javadoc GitHub issues GitHub pull requests GitHub


Logo

MaterialFX

MaterialFX is an open source Java library which provides material design components for JavaFX
Explore the wiki »

Download Latest Demo · Report Bug · Request Feature

Table of Contents

About The Project and History of JavaFX

JavaFX is a software platform intended to replace Swing in creating and delivering rich client applications that operate consistently across diverse platforms. With the release of JDK 11 in 2018, Oracle has made JavaFX part of the OpenJDK under the OpenJFX project in order to increase the pace of its development.

Key features:

  • FXML and SceneBuilder, A designer can code in FXML or use JavaFX Scene Builder to interactively design the graphical user interface (GUI). Scene Builder generates FXML markup that can be ported to an IDE where a developer can add the business logic.
  • Built-in UI controls and CSS, JavaFX provides all the major UI controls required to develop a full-featured application. Components can be skinned with standard Web technologies such as CSS.
  • Self-contained application deployment model. Self-contained application packages have all the application resources and a private copy of the Java and JavaFX runtimes. They are distributed as native installable packages and provide the same installation and launch experience as native applications for that operating system. JavaFX is a software platform for creating and delivering desktop applications, as well as rich Internet applications (RIAs) that can run across a wide variety of devices.

Over the years the way of creating GUIs has often changed and JavaFX default appearance is still pretty much the same. That's where this project comes in. The aim of my project is to bring components which follow as much as possible the Google's material design guidelines to JavaFX. The second purpose is to provide a successor to the already available JFoenix library, which is a bit old and has a lot of issues.

In recent months the project has evolved a lot, to the point that it is no longer a simple substitute.
To date MaterialFX offers not only restyled controls, but also: new and unique controls such as the Stepper, controls completely redone from scratch such as ComboBoxes or TableViews (and many others), and many utilities for JavaFX and Java (NodeUtils, ColorUtils, StringUtils ...).

About The Logo

MaterialFX v11.13.0 brought a lot of fixes and new features, but it also brought a new logo, something that is more meaningful for me and that somewhat represents the new version.
The new logo is a Phoenix, the immortal bird from Greek mythology, associated to regeneration/rebirth. When a Phoenix dies it obtains new life by raising from its ashes.
MaterialFX v11.13.0 fixed many critical bugs and broken features, I like to think that it is reborn from the previous version, so I thought a new logo would have been a good idea.

Preview GIFs

Imgur Link: Gallery

Buttons
Buttons

Check Boxes, Radio Buttons and Toggles
Checkboxes

Combo Boxes
Comboboxes

Dialogs
Dialogs

Fields
Fields

Lists
Listviews

Notifications
Notifications

Pickers
Pickers

Progress
Progress

Scroll Panes
Scrollpanes

Sliders
Sliders

Stepper
Stepper

Tables
Tableviews

Getting Started

In this section you can learn what do you need to use my library in your project or see a preview/demo which I'm planning to release as runtime images here on github.

Build

To build MaterialFX, execute the following command:

gradlew build

To run the main demo, execute the following command:

gradlew run

NOTE: MaterialFX requires Java 11 and above.

NOTE: Starting from version 11.14.0 (next major version), MaterialFX will transition to Java 17 and bump version to 17.x.x. What will happen to version 11 is still to be decided

Usage

Gradle
repositories {
    mavenCentral()
}

dependencies {
  implementation 'io.github.palexdev:materialfx:11.13.3'
}
Maven
<dependency>
  <groupId>io.github.palexdevgroupId>
  <artifactId>materialfxartifactId>
  <version>11.13.3version>
dependency>

Documentation

You can read MaterialFX's documentation at javadoc.io

Changelog

See the CHANGELOG file for a list of changes per version.

Roadmap

See the Open Issues for a list of proposed features (and known issues) .
See the ROADMAP for a list of implemented and upcoming features.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the GNU LGPLv3 License. See LICENSE for more information.

Contact

Alex - [email protected]
Discord

Project Link: https://github.com/palexdev/MaterialFX

Donation

It's been more than a year since I started developing MaterialFX. Implementing cool looking, fully functional controls, introducing new components and features as well as providing many utilities for JavaFX and Java is really hard, especially considering that developing for JavaFX also means to deal with its closeness, its bugs, its annoying design decisions. Many times I've honestly been on the verge of giving up because sometimes it's really too much stress to handle.
But, today MaterialFX is a great library, supported by many people and I'm proud of it. If you are using MaterialFX in your projects and feel like it, I recently activated GitHub Sponsors so you can easily donate/sponsor.

Supporters:

(If you want your github page to be linked here and you didn't specify your username in the donation, feel free to contact me by email and tell me. Also contact me if for some some reason you don't want to be listed here)

  • Alex Hawk
  • Yiding He
  • Alaa Abu Zidan
  • Ultraviolet-Ninja
  • Sourabh Bhat
  • Mohammad Chaudhry (thank you very much for the huge donation, YOU are the legend)
  • Yahia Rehab
  • Mauro de Wit
  • Your name can be here by supporting me at this link, GitHub Sponsors

Thank you very very much to all supporters, to all people who contribute to the project, to all people that thanked me, you really made my day

Comments
  • Designing in TableViews

    Designing in TableViews

    Hi,

    I cannot see any MFXTableViews in my scene builder with version MFX 11.13.5. I can only see MFXLegacyTableView Also is there any documentation on how to make tables as it has no columns and I need to have columns and filters. Please look into the image for all elements I am having

    Thanks, Saad

    image

    not an issue 
    opened by SaadSidd29 19
  • OnDemand Validation.

    OnDemand Validation.

    Is there a way to force on-demand validation? So say we have several fields which by default are marked as valid and a button that should trigger the validation and the state change ?

    staging to-evaluate 
    opened by babltiga 19
  • Remove OpenJFX dependencies while publishing to mvncentral

    Remove OpenJFX dependencies while publishing to mvncentral

    Currently when you add the project as a dependency to any maven project, you get the following IDE error:

    image

    This is happening because the dependency MaterialFX is providing javafx dependencies, that should not be happening. Hence a workaround I am using is to add the following exclusions in my pom.xml:

    <dependency>
      <groupId>io.github.palexdev</groupId>
      <artifactId>materialfx</artifactId>
      <version>${materialfx.version}</version>
      <exclusions>
        <exclusion>
           <groupId>org.openjfx</groupId>
           <artifactId>javafx-graphics</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.openjfx</groupId>
          <artifactId>javafx-controls</artifactId>
        </exclusion>
        <exclusion>
           <groupId>org.openjfx</groupId>
           <artifactId>javafx-base</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.openjfx</groupId>
          <artifactId>javafx-swing</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    

    This PR removes the OpenJFX dependencies before publishing, hence solving the issue.

    opened by rnayabed 13
  • Not working

    Not working

    I added it to gradle's dependencies but the module-info.java now is getting an error like Package .... reads package 'javafx.beans' from both 'javafx.base' and 'javafx.base' and i can't use the library, also when i try to import something it seems like the package doesn't exists

    opened by FakeException 12
  • MFXFilterComboBox, Chinese characters can't be input

    MFXFilterComboBox, Chinese characters can't be input

    Before i start, i have to say that I LOVE the outstanding features very much! 😸

    However, i've found it unable to text Chinese characters into the Search field of MFXFilterComboBox. I'm not familiar with character encodings so i can't figure out which part went wrong It's a critical problem since i'm using it to create a Chinese font selector, where users will have to search through a bunch of fonts

    Hope there will be a fix soon 🍀

    By the way, There's no Chinese translation in the repo currently. If i want to contribute, what should I do? 🤔

    can't fix stale 
    opened by Hamster5295 11
  • Translation of English text to to other languages

    Translation of English text to to other languages

    Hi, I was wondering if there was a way to manually change/translate the current text used in components like "MFXTableView" to other languages? If not, I would be interested in translating it myself (French and Arabic).

    enhancement staging roadmap 
    opened by Yaya-Dev-Box 11
  • MFXProgressBar offset bar location after indeterminate

    MFXProgressBar offset bar location after indeterminate

    Hello,

    I have noticed a bug that occurs in certain scenarios with the MFXProgressBar:

    When the progress bar is set to indeterminate, then changed to a standard progress value, the location of the bar is sometimes not reset and the standard progress is offset as a result. This does not happen if the progress bar is never set to indeterminate.

    ProgressBarIndeterminateToRegular

    https://user-images.githubusercontent.com/83238954/121194929-2ab50a00-c83d-11eb-9baf-1a5007f3f8ef.mp4

    bug 
    opened by mica-alex 10
  • MFXProgressBar not updating progress visually

    MFXProgressBar not updating progress visually

    Hi,

    I am having an issue updating the progress bar to be any value besides indeterminate. I have run a debug on my application and verified the following:

    1. progressBar.setProgress( value ); is called from the JavaFX thread
    2. The internal progressBar.progress and progressBar.indeterminate values appear to be properly updated.
      image
    3. The value specified to progressBar.setProgress( value ) is either the indeterminate value, or is between 0.0 and 1.0.
      image
    4. I have verified that the standard JavaFX progress bar does not experience this behavior, when swapped with the MFXProgressBar (no other code changes)

    Despite everything being called and set correctly (I believe), the progress bar always shows as indeterminate in my application. image

    bug 
    opened by mica-alex 10
  • How to create round material button with images instead of text?

    How to create round material button with images instead of text?

    Screenshot from 2022-04-29 16-05-59

    I am writing a code editor with materialFX.

    I want to create a same control as the filter button in the above image. Is there some other control than MFXButton to achieve this behaviour?

    opened by omegaui 8
  • CSS Customization of MFXFilterComboBox

    CSS Customization of MFXFilterComboBox

    I just might not be able to do it, but how can i (for example) change the color of the popup-background? i saw that you listed the css-selectors, but i just dont get it

    <MFXFilterComboBox styleClass="filterableComboBox"> </MFXFilterComboBox>

    do i have to set a custom styleclass? if yes (or no) how can i access .mfx-combo-box .combo-popup in my styleclass?

    update: i got how to access .mfx-combo-box .combo-popup, BUT: the items, the searchfield is now in "dark mode" but there is still a border around it or a pane that still is white and i dont know to access it

    i got (quick & dirty) `.mfx-filter-combo-box { -fx-text-fill: white; -fx-background-color: derive(rgb(50, 50, 50), 20%); -mfx-caret-visible: false; }

    .mfx-filter-combo-box .combo-popup .virtual-flow { -fx-background-color: transparent; -fx-background-radius: 0; -fx-max-height: 400; -fx-min-height: 400; -fx-min-width: 300; -fx-max-width: 300; }

    .mfx-filter-combo-box .combo-popup .search-field { -fx-background-color: derive(rgb(50, 50, 50), 20%); -fx-text-fill: white; -mfx-gap: 0; -mfx-float-mode: disabled; -fx-padding: 5; -fx-display-caret: false; }

    .mfx-combo-box .combo-popup .virtual-flow .mfx-combo-box-cell { -fx-background-color: derive(rgb(50, 50, 50), 20%); }

    .mfx-combo-box .combo-popup .virtual-flow .data-label { -fx-text-fill: white; }`

    update 2: the problem seems to be "mfx-filter-combo-box .combo-popup .search-container": as in issue #131, if i give this id to my combobox, the styling works

    bug css 
    opened by todayifeeltired 8
  • Build fails on macOS Java 11 and Java 15

    Build fails on macOS Java 11 and Java 15

    Hi!

    I just wanted to build your library using Java 11 (11.0.14) as described. Running ./gradlew build fails with following error:

    > Task :demo:compileJava FAILED
    /PATHTOLIBRARY/MaterialFX/demo/src/main/java/io/github/palexdev/materialfx/demo/model/Model.java:34: error: unclosed string literal
                            """
                              ^
    /PATHTOLIBRARY/MaterialFX/demo/src/main/java/io/github/palexdev/materialfx/demo/model/Model.java:35: error: ';' expected
                                            Lorem Ipsum is simply dummy text of the printing and typesetting industry.
                                                       ^
    /PATHTOLIBRARY/MaterialFX/demo/src/main/java/io/github/palexdev/materialfx/demo/model/Model.java:35: error: ';' expected
                                            Lorem Ipsum is simply dummy text of the printing and typesetting industry.
                                                                 ^
    /PATHTOLIBRARY/MaterialFX/demo/src/main/java/io/github/palexdev/materialfx/demo/model/Model.java:35: error: ';' expected
                                            Lorem Ipsum is simply dummy text of the printing and typesetting industry.
                                                                            ^
    /PATHTOLIBRARY/MaterialFX/demo/src/main/java/io/github/palexdev/materialfx/demo/model/Model.java:35: error: ';' expected
                                            Lorem Ipsum is simply dummy text of the printing and typesetting industry.
    
    

    I also tried to build it with Java 15 (15.0.6) with following error:

    > Task :demo:compileJava FAILED
    /PATHTOLIBRARY/MaterialFX/demo/src/main/java/io/github/palexdev/materialfx/demo/model/Person.java:66: error: no suitable method found for nextInt(int,int)
                    setAge(RandomUtils.random.nextInt(18, 81));
                                             ^
        method Random.nextInt() is not applicable
          (actual and formal argument lists differ in length)
        method Random.nextInt(int) is not applicable
          (actual and formal argument lists differ in length)
    /PATHTOLIBRARY/MaterialFX/demo/src/main/java/io/github/palexdev/materialfx/demo/model/Device.java:104: error: no suitable method found for nextInt(int,int)
                    return RandomUtils.random.nextInt(100000, 1000000);
                                             ^
        method Random.nextInt() is not applicable
          (actual and formal argument lists differ in length)
        method Random.nextInt(int) is not applicable
          (actual and formal argument lists differ in length)
    /PATHTOLIBRARY/MaterialFX/demo/src/main/java/io/github/palexdev/materialfx/demo/controllers/DemoController.java:136: error: cannot find symbol
                                            .toList();
                                            ^
      symbol:   method toList()
      location: interface Stream<ToggleButton>
    Note: Some input files use unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    3 errors
    
    FAILURE: Build failed with an exception.
    

    What Java version are you using to build the library?

    opened by ripcurlx 8
  • MaterialFX in conflict with Ikonli

    MaterialFX in conflict with Ikonli

    I need for my application other icons from the Ikonli library.

    Icons from Ikonli are showing up with FontIcon(iconcode). However, the 'standard' MaterialFX icons have disappeared.... For instance, in the DatePicker popup...

    image

    It looks like the correct font file is not found anymore, once Ikonli is loaded ? Is it possible to have both libraries in the same application ?

    enhancement 
    opened by HansITChange 3
  • .toList() METHOD NOT FOUND

    .toList() METHOD NOT FOUND

    Based on the MaterialsFX Source Code, the "DEMO CONTROLLER" have .toList() method after return. But when I tried it on NetBeans, the .toList() method is not found. I'm using materialfx-11.13.5, JavaFX 11.

    I don't know if this a bug, or i make a mistake. Please bear with me and help me. Thank you!

    Screenshots: image

    image .toList() not found on suggestion

    image Code on initializeLoader loader.setOnLoadedAction

    opened by emmanpbarrameda 1
  • TableView not correctly sizing at creation/initialization

    TableView not correctly sizing at creation/initialization

    Describe the bug MFXTableView does not seem to be correctly sized when created. Startnig a scroll action, it resizes correctly (see attached video).

    MRE(Minimal Reproducible Example)

    TableMain.fmxl

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!--?import ste.w3.easywallet.ui.table.EasyWalletTableView?-->
    <?import javafx.geometry.Insets?>
    <?import javafx.scene.layout.VBox?>
    <?import io.github.palexdev.materialfx.controls.MFXTableView?>
    
    <VBox alignment="CENTER" spacing="5.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ste.w3.easywallet.ui.table.TableMainController">
        <padding>
            <Insets bottom="15.0" />
        </padding>
        <children>
            <MFXTableView fx:id="table" />
        </children>
    </VBox>
    

    TableMain.java

    public class TableMain extends Application {
    
        @Override
        public void start(Stage stage) throws Exception {
            stage.setTitle("TableView Test");
            stage.setWidth(800);
    
    https://user-images.githubusercontent.com/43138/209996110-22ad600a-210b-416a-8f24-653b657586b9.mp4
    
    
            stage.setHeight(600);
            stage.getIcons().add(new Image(TableMain.class.getResourceAsStream("/images/easy-wallet-icon-64x64.png")));
            stage.getIcons().add(new Image(TableMain.class.getResourceAsStream("/images/easy-wallet-icon-128x128.png")));
    
            Scene scene = new Scene(
                FXMLLoader.load(TableMain.class.getResource("/fxml/TableMain.fxml"))
            );
    
            stage.setScene(scene);
    
            stage.show();
        }
    }
    

    TableMainController.java

    public class TableMainController {
    
        @FXML
        protected MFXTableView table;
    
        public TableMainController() {
        }
    
        @FXML
        public void initialize() {
            table.autosizeColumnsOnInitialization();
            setupTable();
        }
    
        private void setupTable() {
            MFXTableColumn<Transaction> whenColumn = new MFXTableColumn<>("when", false, Comparator.comparing(Transaction::when));
            MFXTableColumn<Transaction> currencyColumn = new MFXTableColumn<>("currency", false, Comparator.comparing(Transaction::currency));
            MFXTableColumn<Transaction> amountColumn = new MFXTableColumn<>("amount", false, Comparator.comparing(Transaction::amount));
            MFXTableColumn<Transaction> fromColumn = new MFXTableColumn<>("from", false, Comparator.comparing(Transaction::from));
    
            whenColumn.setRowCellFactory(transaction -> new MFXTableRowCell<>(Transaction::when));
            currencyColumn.setRowCellFactory(transaction -> new MFXTableRowCell<>(Transaction::currency));
            amountColumn.setRowCellFactory(transaction -> new MFXTableRowCell<>(Transaction::amount));
            fromColumn.setRowCellFactory(transaction -> new MFXTableRowCell<>(Transaction::from));
    
            table.getTableColumns().addAll(whenColumn, currencyColumn, amountColumn, fromColumn);
            table.getFilters().addAll(
                    new StringFilter<>("when", Transaction::whenZ),
                    new StringFilter<>("currency", Transaction::currency),
                    new StringFilter<>("amount", Transaction::amount),
                    new StringFilter<>("from", Transaction::from)
            );
    
            ObservableList<Transaction> data = FXCollections.observableArrayList();
    
            for (int i = 1; i <= 50; ++i) {
                data.add(
                        new Transaction(
                                Instant.parse(String.format("2022-11-10T10:%02d:00Z", i)),
                                "USD",
                                String.format("%1$02d.%1$02d", i),
                                String.format("12345678901234567890123456789012345678%02d", i),
                                String.format("hahs%02d", i)
                        )
                );
            }
            table.setItems(data);
        }
    
        private class Transaction {
    
            public final String hash, from, amount, currency;
            public final Instant when;
    
            public Transaction() {
                this(null, null, null, null, null);
            }
    
            public Transaction(Instant when, String currency, String amount, String from, String hash) {
                this.when = when;
                this.currency = currency;
                this.amount = amount;
                this.from = from;
                this.hash = hash;
            }
    
            public Instant when() {
                return when;
            }
    
            public String currency() {
                return currency;
            }
    
            public String amount() {
                return amount;
            }
    
            public String from() {
                return from;
            }
    
            public String hash() {
                return hash;
            }
    
            public String whenZ() {
                return when.toString();
            }
        }
    }
    
    

    To Reproduce Run the MRE

    Expected behavior The table size and position is correct since the beginning.

    Screenshots see video...

    https://user-images.githubusercontent.com/43138/209996148-bac26473-270f-4d70-b021-3c3045ba8c99.mp4

    enhancement 
    opened by stefanofornari 2
  • MFXPaginatedTableView show additional space aftear last column

    MFXPaginatedTableView show additional space aftear last column

    Describe the bug FXML

    <VBox id="addressText" alignment="CENTER" spacing="5.0" styleClass="content" stylesheets="@../css/easywallet.css" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ste.w3.easywallet.ui.LedgerController">
        <padding>
            <Insets bottom="15.0" />
        </padding>
        <children>
            <MFXPaginatedTableView fx:id="transactions" rowsPerPage="10" />
        </children>
    </VBox>
    

    In the controller I am addign the columns as:

    MFXTableColumn<Transaction> whenColumn = new MFXTableColumn<>("when", false, Comparator.comparing(Transaction::getWhen));
            MFXTableColumn<Transaction> amountColumn = new MFXTableColumn<>("amount", false, Comparator.comparing(Transaction::getAmount));
            MFXTableColumn<Transaction> fromColumn = new MFXTableColumn<>("from", false, Comparator.comparing(Transaction::getFrom));
    
            whenColumn.setRowCellFactory(transaction -> new MFXTableRowCell<>(Transaction::getWhen));
            amountColumn.setRowCellFactory(transaction -> new MFXTableRowCell<>(Transaction::getAmount));
            fromColumn.setRowCellFactory(transaction -> new MFXTableRowCell<>(Transaction::getFrom));
    
            transactions.getTableColumns().addAll(whenColumn, amountColumn, fromColumn);
            transactions.getFilters().addAll(
                            new StringFilter<>("when", Transaction::getWhen),
                            new StringFilter<>("amount", Transaction::getAmount),
                            new StringFilter<>("from", Transaction::getFrom)
            );
    

    When I show the table, which should resize all columns, not all space is used: image

    MRE(Minimal Reproducible Example) It is noticeable in the demo application as well.

    To Reproduce Run the demo application and see the Tables section

    Expected behavior Columns are sized to expand to the available space

    Screenshots image

    enhancement 
    opened by stefanofornari 3
  • MFXGenericDialog.setContent : Node is not displayed

    MFXGenericDialog.setContent : Node is not displayed

    Hi, Here is my code :

    MFXGenericDialog dialogContent = MFXGenericDialogBuilder.build()
                        .setContent(vBox)
                        .makeScrollable(true)
                        .get();
    
                MFXStageDialog dialog = MFXGenericDialogBuilder.build(dialogContent)
                        .toStageDialogBuilder()
                        .initOwner(this.dialogStage)
                        .initModality(Modality.APPLICATION_MODAL)
                        .setDraggable(true)
                        .setTitle("Personne")
                        .setOwnerNode(this.viewGraph)
                        .setScrimPriority(ScrimPriority.WINDOW)
                        .setScrimOwner(true)
                        .get();
    
                dialogContent.setPrefSize(600, 500);
                dialogContent.setMinSize(600, 500);
                dialogContent.setMaxSize(600, 500);
                dialog.showDialog();
    

    vBox is a VBox element with multiple Pane inside. But this vbox is not displayed in the dialog window.

    setContentText is working. I tried to put a simple Button like so: .setContent(new Button("test")) Does not work either...

    Is this a bug or i did something wrong ?

    to-evaluate 
    opened by chuckdu21 2
  • MFXComboBox visible rows

    MFXComboBox visible rows

    Discussed in https://github.com/palexdev/MaterialFX/discussions/242

    Originally posted by Keiinmal August 30, 2022 Hey, I need to work with a MFXComboBox but appearently it always only shows 3 rows. Normally it would be possible to use "comboBox.setVisibleRowCount(int)" to change the amount but it looks like MFXComboBox does not extend the JavaFx ComboBox. Is there any way to still change the amount?

    The height of the popup is set by the combo box css To change it you just have to add a stylesheet to the control or the root pane with this settings:

    .mfx-combo-box .combo-popup .virtual-flow {
    	-fx-pref-height: prefVal;
    	-fx-max-height: maxVal;
    } 
    

    Discussion made into issue as a reminder to improve this and add the visibleRowCount property

    enhancement 
    opened by palexdev 0
Releases(v11.13.5)
Owner
Alessadro Parisi
Love gaming, Love tech, Love programming. Currently studying for a Computer Science degree(3y), and maybe after that Computer Engineering(2y)
Alessadro Parisi
Lib-Tile is a multi Maven project written in JavaFX and NetBeans IDE 8 and provides the functionalities to use and handle easily Tiles in your JavaFX application.

Lib-Tile Intention Lib-Tile is a multi Maven project written in JavaFX and NetBeans IDE and provides the functionalities to use and handle easily Tile

Peter Rogge 13 Apr 13, 2022
DataFX - is a JavaFX frameworks that provides additional features to create MVC based applications in JavaFX by providing routing and a context for CDI.

What you’ve stumbled upon here is a project that intends to make retrieving, massaging, populating, viewing, and editing data in JavaFX UI controls ea

Guigarage 110 Dec 29, 2022
Provides a Java API to use the JavaScript library d3.js with the JavaFx WebView

javafx-d3 Provides a Java API for using the JavaScript library d3.js with JavaFx Applications. Many thanks to the authors of the projects gwt-d3 [1] a

null 98 Dec 19, 2022
PostgreSQL is the world's most advanced open source database. Also, PostgreSQL is suitable for Event Sourcing. This repository provides a sample of event sourced system that uses PostgreSQL as event store.

Event Sourcing with PostgreSQL Introduction Example Domain Event Sourcing and CQRS 101 State-Oriented Persistence Event Sourcing CQRS Advantages of CQ

Evgeniy Khyst 146 Dec 20, 2022
HUAWEI 3D Modeling Kit project contains a sample app. Guided by this demo, you will be able to implement full 3D Modeling Kit capabilities, including 3D object reconstruction and material generation.

HUAWEI 3D Modeling Kit Sample English | 中文 Introduction This project includes apps developed based on HUAWEI 3D Modeling Kit. The project directory is

HMS 59 Jan 1, 2023
Nightmare-text - This is a simple lib that help to create, titles, actionbars, hovers and click actions chat components.

Nightmare text This is a simple lib that help to create, titles, actionbars, hovers and click actions chat components. Setup public final class Testin

Jonathan Narvaez 8 Mar 9, 2022
Tray Icon implementation for JavaFX applications. Say goodbye to using AWT's SystemTray icon, instead use a JavaFX Tray Icon.

FXTrayIcon Library intended for use in JavaFX applications that makes adding a System Tray icon easier. The FXTrayIcon class handles all the messy AWT

Dustin Redmond 248 Dec 30, 2022
A 3D chart library for Java applications (JavaFX, Swing or server-side).

Orson Charts (C)opyright 2013-2020, by Object Refinery Limited. All rights reserved. Version 2.0, 15 March 2020. Overview Orson Charts is a 3D chart l

David Gilbert 96 Sep 27, 2022
A 2D chart library for Java applications (JavaFX, Swing or server-side).

JFreeChart Version 2.0.0, not yet released. Overview JFreeChart is a comprehensive free chart library for the Java(tm) platform that can be used on th

David Gilbert 946 Jan 5, 2023
An open source application to make your own android applications without coding!

Stif An Open source project for building Android Application at a go both with and without coding. This project was inspired from Scratch and Sketchwa

Nethical org 5 Aug 28, 2021
This is an open source visualization for the C4 model for visualising software architecture.

c4viz: C4 Visualization This is an open source visualization for the C4 model for visualising software architecture. It expects input in the form of a

Peter Valdemar Mørch 40 Dec 6, 2022
WavesFX an open-source Waves wallet for Windows, macOS and Linux

WavesFX WavesFX is an open-source Waves wallet for Windows, macOS and Linux. Telegram Chat Releases can be found on the release list. How to build Wav

WavesFX 22 Apr 15, 2022
JSilhouette provides additional shapes for Java applications

JSilhouette JSilhouette provides additional shapes for Java applications. Currently JavaFX is supported. Installing You can get the latest version of

Kordamp 39 Nov 7, 2022
A library of +70 ready-to-use animations for JavaFX

AnimateFX A library of ready-to-use animations for JavaFX Features: Custom animations Custom interpolators Play/Stop animation Play an animation after

Loïc Sculier 366 Jan 5, 2023
A JavaFX library that allows Java2D code (Graphics2D) to be used to draw to a Canvas node.

FXGraphics2D Version 2.1, 3 October 2020. Overview FXGraphics2D is a free implementation of Java's Graphics2D API that targets the JavaFX Canvas. It m

David Gilbert 184 Dec 31, 2022
A library for JavaFX that gives you the ability to show progress on the Windows taskbar.

A clean and easy way to implement this amazing native Windows taskbar-progressbar functionality in javaFX Background Since Windows 7 there is a taskba

Daniel Gyoerffy 77 Nov 28, 2022
A JavaFX 3D Visualization and Component Library

FXyz3D FXyz3D Core: FXyz3D Client: FXyz3D Importers: A JavaFX 3D Visualization and Component Library How to build The project is managed by gradle. To

null 16 Aug 23, 2020
A library for creating and editing graph-like diagrams in JavaFX.

Graph Editor A library for creating and editing graph-like diagrams in JavaFX. This project is a fork of tesis-dynaware/graph-editor 1.3.1, which is n

Steffen 125 Jan 1, 2023
Kubed - A port of the popular Javascript library D3.js to Kotlin/JavaFX.

Kubed: A Kotlin DSL for data visualization Kubed is a data visualization DSL embedded within the Kotlin programming language. Kubed facilitates the cr

Brian Hudson 71 Dec 28, 2022