A library for JavaFX that gives you the ability to show progress on the Windows taskbar.

Overview

JavaFXTaskbarProgressbar

A clean and easy way to implement this amazing native Windows taskbar-progressbar functionality in javaFX

Background

Since Windows 7 there is a taskbar-progressbar feature in Windows systems that basically means that you can see progress on the program's taskbar icon. A good example for this when you copy something using the file explorer:
Taskbar progressbar in windows 7
This is very useful because you don't have to open the window to see the progress! The problem is that javaFX doesn't provide this functionality by default... however you can easily implement it with this library!

Compatibility

This library has support for java 8 and java 11 too.
The 'v11.x' versions are for java11 users and the 'v8.x' versions are for java 8 users.

Using with java 11

If you use java 11 you have to pass this VM argument: --add-exports javafx.graphics/com.sun.glass.ui=nativejavafx.taskbar. Also, you have to mention the nativejavafx.taskbar module in your module-info.java file:

module YourModule {
    ...
    requires nativejavafx.taskbar;
}

How to include it to your project

Maven example:

Add JitPack.io to your repositories :

<repositories>
   <repository>
     <id>jitpack.io</id>
     <url>https://jitpack.io</url>
   </repository>
</repositories>

Add the dependency:

<dependency>
	<groupId>com.github.Dansoftowner</groupId>
	<artifactId>FXTaskbarProgressBar</artifactId>
	<version>v11.4</version>
</dependency>

Gradle example

Add the repository:

repositories {
    //...
    maven { url 'https://jitpack.io' }
}

Add the dependency:

dependencies {
    //...
    implementation 'com.github.Dansoftowner:FXTaskbarProgressBar:v11.4'
}

How to use it Tutorial

0. Types of progressbar

Before we jump in, we have to know the 4 types of a taskbar-progressbar:

  • NORMAL - a progressbar with normal green color
  • PAUSED - a progressbar with a yellow color
  • ERROR - a progressbar with a red color
  • INDETERMINATE - a progressbar that doesn't show any fix progress
  • NO_PROGRESS - a progressbar that doesn't show anything

    All these types are represented by the enum called com.nativejavafx.taskbar.TaskbarProgressbar.Type.

Now let's see how can we actually use this through code.
There are multiple ways to create taskbar progressbars with this library:

1.Through static methods:

Firstly you have to import the necessary class:

import com.nativejavafx.taskbar.TaskbarProgressbar; 

...and you have to show the javafx Stage before any operation:

primaryStage.show();

Then call the static method:

TaskbarProgressbar.showCustomProgress(primaryStage, 0.5, TaskbarProgressbar.Type.NORMAL);

Well, the code above looks okay, but it's not safe. This functionality isn't supported by every OS. For example on a Linux system it will definitely throw an UnsupportedSystemException because it's only available on Windows 7+ systems.
If you use static methods to create taskbar-progressbars you always have to check that the current OS supports this functionality!

So let's correct the code:

if (TaskbarProgressbar.isSupported()) {
    TaskbarProgressbar.showCustomProgress(primaryStage, 0.5, TaskbarProgressbar.Type.NORMAL);
}

...now it is safe!

Result:
Normal Taskbar progressbar

You have to do a similar thing if you want to show an indeterminate progress:

if (TaskbarProgressbar.isSupported()) {
    TaskbarProgressbar.showIndeterminateProgress(primaryStage);
}

Result:
Indeterminate Taskbar progressbar

To stop the progress:

TaskbarProgressbar.stopProgress(primaryStage);

2. Through instantiation (the recommended way)

Firstly (after you imported the necessary class) create a TaskbarProgressbar instance with the help of TaskbarProgressbarFactory:

TaskbarProgressbar progressbar = TaskbarProgressbarFactory.getTaskbarProgressbar(primaryStage);

Before any operation you have to show the Stage:

primaryStage.show();

After that just use the created instance for the operations:

progressbar.showCustomProgress(0.5, TaskbarProgressbar.Type.NORMAL);

Note: in this case to check that the OS supports this functionality is unnecessary because the object checks it automatically!

The result is the same:
Normal Taskbar progressbar

If you want an indeterminate process:

progressbar.showIndeterminateProgress();

To stop the progress:

progressbar.stopProgress();

Bonus features

A simple method for showing a fully loaded error progressbar

progressbar.showFullErrorProgress();
//equivalent to progressbar.showCustomProgress(100, 100, TaskbarProgressbar.Type.ERROR) 

Result:
Full errror taskbar progress

Also:

progressbar.showFullNormalProgress();
progressbar.showFullPausedProgress();

More screenshots

Some more screenshots about what can you do with this library

  • A paused progress example:
    Code: progressbar.showCustomProgress(0.7, TaskbarProgressbar.Type.PAUSED);
    Paused progress
  • An error progress example:
    Code: progressbar.showCustomProgress(0.4, TaskbarProgressbar.Type.ERROR);
    Paused progress

Full demo

A full demo-example class is available here.

Projects using FXTaskbarProgressBar

If this library is used by your project, let me know in the Discussions and I will mention that in this section.

Source code

This project has two important branches:

  • "master" - for java 8 builds
  • "11" - for java 11 builds

Used libraries

Support

If you like this library give it a star!

Comments
  • Java 11 - StageHelper.getStage() not exits

    Java 11 - StageHelper.getStage() not exits

    Good morning, you made a great project to use the progress of windows. Thank you.

    I would like to report a bug in the Java 11 version, the StageHelper class does not exit getStage() function, has been removed.

    You can work around this using the static classes, because the use of the windows class is implemented.

    TaskbarProgressbar.showIndeterminateProgress (0);

    opened by JhonnySalles 4
  • Module-Info

    Module-Info

    Thanks for all the updates on your project, i am very grateful.

    I tried to migrate to use your project by maven, but it presents conflicts when used by modules, due to not being able to obtain the specific name, so I returned to using your jar in the Referenced Libraries.

    By default, when you don't have the module configuration file in your projects, java tends to use the name of the project or class, but I couldn't find the correct name for it to work with the module configuration.

    If possible, I would like you to add Module-Info in your project, as this way I can configure the module correctly through the name given in this file.

    image

    image

    opened by JhonnySalles 2
  • Compiling error with Java 8

    Compiling error with Java 8

    Hi. I use your library in my project with Java 8.

    And I get error:

    Error:(8, 32) java: cannot access com.nativejavafx.taskbar.TaskbarProgressbar
      bad class file: /C:/Users/Tsyklop/.m2/repository/com/github/Dansoftowner/FXTaskbarProgressBar/11.2.7/FXTaskbarProgressBar-11.2.7.jar!/com/nativejavafx/taskbar/TaskbarProgressbar.class
        class file has wrong version 55.0, should be 52.0
        Please remove or make sure it appears in the correct subdirectory of the classpath.
    

    README tell about that library use for Java 8 and above. But something went wrong

    opened by Tsyklop 1
  • Update error, org.slf4j.LoggerFactory not access

    Update error, org.slf4j.LoggerFactory not access

    I was using version v11.2.7 and I noticed that a newer version came out, I decided to update, because I noticed that in this version the indeterminate progress no longer worked, I believe it was a windows 10 update.

    But when updating to v11.4, I got the error below, I believe it is due to the logger being implemented. I use a project with java 14 and module-info, which is configured accordingly.

    
    Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    	at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1857)
    	at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1724)
    	at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
    	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    	at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    	at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
    	at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8792)
    	at javafx.controls/javafx.scene.control.Button.fire(Button.java:203)
    	at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
    	at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
    	at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
    	at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
    	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    	at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    	at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
    	at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3880)
    	at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1873)
    	at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2606)
    	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411)
    	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301)
    	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450)
    	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
    	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449)
    	at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:557)
    	at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:943)
    	at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    	at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
    	at java.base/java.lang.Thread.run(Thread.java:831)
    Caused by: java.lang.reflect.InvocationTargetException
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    	at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:77)
    	at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    	at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
    	at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:84)
    	at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1854)
    	... 54 more
    Caused by: java.lang.IllegalAccessError: class com.nativejavafx.taskbar.TaskbarProgressbarImpl (in module nativejavafx.taskbar) cannot access class org.slf4j.LoggerFactory (in unnamed module @0x5111305d) because module nativejavafx.taskbar does not read unnamed module @0x5111305d
    	at nativejavafx.taskbar/com.nativejavafx.taskbar.TaskbarProgressbarImpl.<clinit>(TaskbarProgressbarImpl.java:42)
    	at nativejavafx.taskbar/com.nativejavafx.taskbar.TaskbarProgressbarFactory.getTaskbarProgressbarImpl(TaskbarProgressbarFactory.java:31)
    	at nativejavafx.taskbar/com.nativejavafx.taskbar.TaskbarProgressbar.createCache(TaskbarProgressbar.java:133)
    	at nativejavafx.taskbar/com.nativejavafx.taskbar.TaskbarProgressbar.getTaskbarProgressbarImpl(TaskbarProgressbar.java:138)
    	at nativejavafx.taskbar/com.nativejavafx.taskbar.TaskbarProgressbar.showIndeterminateProgress(TaskbarProgressbar.java:161)
    	at TextosJapones/org.jisho.textosJapones.controller.mangas.MangasJsonController.carregar(MangasJsonController.java:478)
    	at TextosJapones/org.jisho.textosJapones.controller.mangas.MangasJsonController.onBtnCarregar(MangasJsonController.java:146)
    	... 65 more
    
    
    opened by JhonnySalles 1
  • [Suggestion] [Java 8] method isActive return boolean

    [Suggestion] [Java 8] method isActive return boolean

    Hi!

    I want to make a suggestion, can you do a method "isActive" which return a boolean true or false, so we can detect if a TaskbarProgressBar is active or not so we can access it anywhere!

    Cordially, NzoSifou

    enhancement 
    opened by NzoSifou 2
  • JUnit starting error

    JUnit starting error

    I want to start junit tests. But I cant.

    I got error: image

    I I remove FXTaskbarProgressBar dependency - all fine.

    I have simple test:

    package info.test;
    
    import org.junit.jupiter.api.Test;
    
    public class JUnitTest {
    
        @Test
        public void test() {
    
        }
    
    }
    
    

    I have next pom.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>junit-test</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
    
            <java.version>1.8</java.version>
    
            <maven.compiler.target>1.8</maven.compiler.target>
            <maven.compiler.source>1.8</maven.compiler.source>
    
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            
            <slf4j.version>1.7.30</slf4j.version>
    
            <lombok.version>1.18.6</lombok.version>
    
            <logback.version>1.2.3</logback.version>
    
            <commons-io.version>2.6</commons-io.version>
    
            <commons-text.version>1.9</commons-text.version>
    
            <commons-lang3.version>3.11</commons-lang3.version>
    
            <commons-codec.version>1.14</commons-codec.version>
    
            <commons-validator.version>1.7</commons-validator.version>
    
            <commons-beanutils.version>1.9.4</commons-beanutils.version>
    
            <commons-collections4.version>4.4</commons-collections4.version>
    
            <commons-configuration2.version>2.7</commons-configuration2.version>
    
            <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
    
            <maven-resources-plugin.version>3.1.0</maven-resources-plugin.version>
    
            <reflections.version>0.9.12</reflections.version>
    
            <FXTaskbarProgressBar.version>v8.2</FXTaskbarProgressBar.version>
    
            <jackson-core.version>2.10.1</jackson-core.version>
            <jackson-databind.version>2.10.1</jackson-databind.version>
            <jackson-datatype-jdk8.version>2.10.1</jackson-datatype-jdk8.version>
            <jackson-datatype-jsr310.version>2.10.1</jackson-datatype-jsr310.version>
            <jackson-module-parameter-names.version>2.10.1</jackson-module-parameter-names.version>
    
            <mockito.version>3.9.0</mockito.version>
    
            <junit.jupiter.version>5.8.0-M1</junit.jupiter.version>
            <junit.platform.version>1.8.0-M1</junit.platform.version>
    
        </properties>
    
        <dependencies>
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jul-to-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>log4j-over-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
    
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>${logback.version}</version>
            </dependency>
    
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
    
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons-lang3.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>${commons-text.version}</version>
            </dependency>
    
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons-codec.version}</version>
            </dependency>
    
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>${commons-beanutils.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-collections</groupId>
                        <artifactId>commons-collections</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <dependency>
                <groupId>commons-validator</groupId>
                <artifactId>commons-validator</artifactId>
                <version>${commons-validator.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-collections</groupId>
                        <artifactId>commons-collections</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>${commons-collections4.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-configuration2</artifactId>
                <version>${commons-configuration2.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.commons</groupId>
                        <artifactId>commons-text</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.commons</groupId>
                        <artifactId>commons-lang3</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <dependency>
                <groupId>org.reflections</groupId>
                <artifactId>reflections</artifactId>
                <version>${reflections.version}</version>
            </dependency>
    
            <!-- JSON -->
    
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson-core.version}</version>
            </dependency>
    
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson-databind.version}</version>
            </dependency>
    
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-parameter-names</artifactId>
                <version>${jackson-module-parameter-names.version}</version>
            </dependency>
    
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jdk8</artifactId>
                <version>${jackson-datatype-jdk8.version}</version>
            </dependency>
    
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jsr310</artifactId>
                <version>${jackson-datatype-jsr310.version}</version>
            </dependency>
    
            <dependency>
                <groupId>com.github.Dansoftowner</groupId>
                <artifactId>FXTaskbarProgressBar</artifactId>
                <version>${FXTaskbarProgressBar.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>${junit.jupiter.version}</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-runner</artifactId>
                <version>${junit.platform.version}</version>
                <scope>test</scope>
            </dependency>
    
        </dependencies>
    
        <repositories>
            <repository>
                <id>jitpack.io</id>
                <url>https://jitpack.io</url>
            </repository>
        </repositories>
    
    </project>
    
    invalid 
    opened by Tsyklop 0
Releases(v11.4)
Owner
Daniel Gyoerffy
A JVM lover.
Daniel Gyoerffy
Java Swing application to upload files to FTP server with progress bar

Java Swing application to upload files to FTP server with progress bar Swing-based application that uploads files from local computer to a remote FTP

Aditya Deshmukh 1 Feb 11, 2022
A JavaFX UI framework to create fully customized undecorated windows

CustomStage A JavaFX undecorated stage which can fully be customized Donations If this project is helpful to you and love my work and feel like showin

Oshan Mendis 186 Jan 6, 2023
💠 Undecorated JavaFX Scene with implemented move, resize, minimise, maximise, close and Windows Aero Snap controls.

Support me joining PI Network app with invitation code AlexKent FX-BorderlessScene ( Library ) ?? Undecorated JavaFX Scene with implemented move, resi

Alexander Kentros 125 Jan 4, 2023
Decorate "Undecorated" JavaFX windows

DEPRECATED: The latest version of this project is UndecoratorBis https://github.com/in-sideFX/UndecoratorBis Undecorator Decorate undecorated Java

null 115 Sep 23, 2022
A prayer times (Adhan) app for Windows and GNU/Linux written in JavaFX.

Salawat Salawat - سالوات A prayer times and Adhan application for Windows, macOS and GNU/Linux written in Java Download » View Demo · Report Bug · Req

DarkBlackChocolate 8 Nov 17, 2022
Custom captions (window decorations) on Windows for JavaFX

javafx-customcaption javafx-customcaption is designed to allow customizing the native window caption on Microsoft Windows Usage: You can use the follo

null 3 Dec 15, 2022
Toaster library to show Toasts with very less code

ToasterLibrary Step 1. Add the Toaster Library to your build file Add it in your root build.gradle at the end of repositories: allprojects { reposit

Sujeet Thakur 4 May 16, 2021
Terminal GUI library for simple ANSI console tools and graphical interfaces with Windows/Linux support

TerminalCore Terminal GUI library for Windows/Linux. This library contains all colors as ascii codes, native functions of the respective operating sys

Pascal 3 Oct 19, 2022
Show Geyser's players' skins on your server!

GeyserSkinManager There is currently no config - drop in and it works! Known caveats: Only tested on Paper and Spigot 1.16+. 1.13 might break, but thi

Camotoy 50 Dec 6, 2022
Show git commit logs in NetBeans

gitlogbeans Description Show git commit logs in NetBeans Apache NetBeans and JDK Compatibility JDK >= 9 Apache NetBeans >= 9.0 Plugin is available at

Chrizzly 5 Jul 13, 2022
InstallRepos - Install GitHub Repository on any Operating System (Linux, MacOS or Windows).

Install Repos Install GitHub Repository on any Operating System (Linux, MacOS or Windows). Requires Java JRE 17.0.0.1 or later. Repository Includes: s

Tushar Chaurasia 2 Apr 21, 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
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
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
CSS keyframe animation for JavaFX. Create animations like you would do with CSS.

JFXAnimation CSS keyframe animation for JavaFX. If you are using JFoenix JFXAnimation is included (currently version 1.0.0 only) Requirements JDK 8 an

Marcel Schlegel 49 Dec 28, 2022
JDKMon - A little tool written in JavaFX that monitors your installed JDK's and inform you about updates

JDKMon JDKMon Home JDKMon is a little tool written in JavaFX that tries to detect all JDK's installed on your machine and will inform you about new up

Gerrit Grunwald 246 Jan 3, 2023
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