GithubHelp home page GithubHelp logo

harshgor / fxtrayicon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dustinkredmond/fxtrayicon

0.0 0.0 0.0 4.39 MB

Tray Icon implementation for JavaFX applications. Say goodbye to using AWT's SystemTray icon, instead use a JavaFX Tray Icon.

License: MIT License

Java 100.00%

fxtrayicon's Introduction

FXTrayIcon

Maven Central Travis CI Build

Library for use in JavaFX applications that makes adding a System Tray icon easier. The FXTrayIcon class handles all the messy AWT and Swing parts of constructing an icon, displaying notifications, creating a context menu, etc. This means that users of FXTrayIcon can work solely with its public API and JavaFX classes that they are already familiar with.

Check out the runnable test application in the test directory for an example of how this works.

Usage

From within your JavaFX application, adding a tray icon is as simple as two lines of code. Yes, really, that's it!

// Pass in the app's main stage, and path to the icon image
FXTrayIcon icon = new FXTrayIcon(stage, getClass().getResource("someImageFile.png"));
icon.show();

Or use Builder Style

FXTrayIcon icon = new FXTrayIcon.Builder(stage, iconURL).menuItem("Menu 1", e-> myMethod()).addExitItem().show().build();

Click here for a Builder tutorial

How do I add to my project

The project is available as a Maven dependency on Central. Add the following to POM.xml

<dependency>
  <groupId>com.dustinredmond.fxtrayicon</groupId>
  <artifactId>FXTrayIcon</artifactId>
  <version><!--See Below --></version>
</dependency>

Or, if using Gradle to build, add the below to your Gradle build file

compile group: 'com.dustinredmond.fxtrayicon', name: 'FXTrayIcon', version: '<see below>'

You can even use it from a Groovy script!

@Grapes(
  @Grab(group='com.dustinredmond.fxtrayicon', module='FXTrayIcon', version='<see below>')
)

Note, for the current stable version number, use the following: Maven Central

Features & Screenshots

FXTrayIcon on Windows 10's tray

FXTrayIcon example

Above is an example of FXTrayIcon running on Windows 10, of course, you choose your own icon file. Here we used a link icon from Icons8, they provide thousands of amazing icons for developers, both free (with an attribution) and paid.

Context Menu - uses JavaFX MenuItem

FXTrayIcon menu example

An example of FXTrayIcon's custom context menu, built using JavaFX MenuItems. Surprise, surprise, JavaFX MenuItems get translated into AWT MenuItems by FXTrayIcon, so there's no need to use those! A developer can work solely with JavaFX Menus and MenuItems.

Tray notifications

The following can be used to show notifications. Note that the showMessage() method uses the icon from FXTrayIcon in the notification, while the others use different icons to indicate the level of severity of the message.

  • showMessage(String caption, String content)

    • or showMessage(String content)

      showMessage

  • showInfoMessage(String caption, String content)

    • or showInfoMessage(String content)

      showInfoMessage

  • showWarnMessage(String caption, String content)

    • or showWarnMessage(String content)

      showWarnMessage

  • showErrorMessage(String caption, String content)

    • or showErrorMessage(String content)

      showErrorMessage

Supported operating systems

OS Support Status Unsupported Features
Windows 10 Fully supported N/A
Mac OS Partially supported In the displayMessage() methods. Custom notification icons are not supported in AppleScript calls, but the TrayIcon is.
Linux Partially supported Some desktop environments that support java.awt.SystemTray are supported. Many are not. You should not rely on the isSupported method as a matter of truth, testing on individual desktop environments is strongly encouraged.

Call FXTrayIcon.isSupported() to see if the current platform supports the system tray.

Projects using FXTrayIcon

  • JDKMon - A tool that monitors your installed JDK's and informs you about updates.
  • GlucoStatusFX - Glucose status monitor for Nightscout implemented in JavaFX.
  • GistFX - A utility that makes managing and organizing your GitHub Gists easy and convenient.

If your project uses FXTrayIcon, let us know via Pull Request, and we'll feature your project on this README.

fxtrayicon's People

Contributors

atelechev avatar dustinkredmond avatar easyg0ing1 avatar hansolo avatar j0b10 avatar nexrx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.