Re: Jpopupmenu Bug/Glitch When Showing Submenu

2022-05-25 Thread Davide Perini
I opened a bug report but they closed it by saying that they can't 
reproduce.

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8286713

They test on Windows 10, can this be the cause why they are not able to 
reproduce?


Here a gist where the code is better formatted.
https://gist.github.com/sblantipodi/4ed1d3acc04fd6d4f87c00c7e91eb343

This is the glitch I have, better described on a video:
https://www.youtube.com/shorts/IYq_yHemsgA

Using Adopt Open JDK 17, JavaFX 18.0.1 and Windows 11.

If I remove the submenu, problem is solved but I need the submenu.

Any idea?

Thanks
Davide


Il 09/05/2022 18:14, Davide Perini ha scritto:

I add a video that shows the issue.
https://www.youtube.com/shorts/IYq_yHemsgA

as you can see, there is no issue until I put the mouse pointer over 
the JMenu (submenu),

once I put the mouse on the JMenu the entire JPopupMenu shows the glitch.

Thanks
Davide

Il 09/05/2022 18:04, Davide Perini ha scritto:
I can't load images unfortunantly but this is the minimum code to 
reproduce the issue.
It seems that there is no way to add JMenu to JPopupMenu without 
having this glitch.


Is this a problem in JavaFX?
I see non obvious errors in my code.

Thanks
Davide

package org.dpsoftware; import org.dpsoftware.config.Constants; 
import org.dpsoftware.utilities.CommonUtility; import javax.swing.*; 
import java.awt.*; import java.awt.event.*; import 
java.io.IOException; import java.io.PrintWriter; import 
java.io.Serial; import java.io.StringWriter; import java.net.URI; 
import java.net.URISyntaxException; public class TrayIconMainClass {


   private static final StringTRAY_ICON_SKELETON_PROJECT_URL 
="https://github.com/Sylvain-Bugat/tray-icon-skeleton;; /** Load the 
tray icon image to display in the tray bar*/ private static 
ImageTRAY_ICON_IMAGE = Toolkit.getDefaultToolkit().getImage( 
TrayIconMainClass.class.getClassLoader().getResource("tray_play.png" 
) ); //$NON-NLS-1$ static JMenuaspectRatioSubMenu; /** * Main program 
launched in the jar file * * @param args * @throws IOException */ 
private void initializeImages() {

  // load an image }

   public static void main(final String args[] )throws IOException {
  aspectRatioSubMenu =new JMenu("dadsdsa"); JMenuItem menuItam 
=new JMenuItem("dada"); aspectRatioSubMenu.add(menuItam); //Test if 
the system support the system tray if( SystemTray.isSupported() ) {


 //Try to use the system Look try {
    UIManager.setLookAndFeel( 
UIManager.getCrossPlatformLookAndFeelClassName() ); }

 catch(final ClassNotFoundException exception ) {
    //If System Look is not supported, stay with the 
default one }

 catch(final InstantiationException exception ) {
    //If System Look is not supported, stay with the 
default one }

 catch(final IllegalAccessException exception ) {
    //If System Look is not supported, stay with the 
default one }

 catch(final UnsupportedLookAndFeelException exception ) {
    //If System Look is not supported, stay with the 
default one }


 //Add the icon to the system tray final TrayIcon trayIcon 
=new TrayIcon(TRAY_ICON_IMAGE, "Tray icon skeleton" ); 
trayIcon.setImageAutoSize(true ); // Get the system default browser 
to open execution details final Desktop desktop = 
Desktop.getDesktop(); //Action listener to get click on top menu 
items final ActionListener menuListener =new ActionListener() {

    @SuppressWarnings("synthetic-access")
    public void actionPerformed(final ActionEvent e) {

   if( JMenuItem.class.isInstance( e.getSource() ) ){

  JMenuItem jMenuItem = (JMenuItem) e.getSource(); 
JOptionPane.showMessageDialog(null, "It works, you clicked on:" + 
System.lineSeparator() + jMenuItem.getText(), "Your skill is 
great!!", JOptionPane.INFORMATION_MESSAGE ); //$NON-NLS-1$ }

    }
 }; //About menu listener final ActionListener aboutListener 
=new ActionListener() {

    @SuppressWarnings("synthetic-access")
    public void actionPerformed(final ActionEvent e) {

   //Open an URL using the system default browser try {
  final URI executionURI =new 
URI(TRAY_ICON_SKELETON_PROJECT_URL ); desktop.browse( executionURI ); }

   catch(final URISyntaxException exception ) {

  final StringWriter stringWriter =new 
StringWriter(); exception.printStackTrace(new PrintWriter( 
stringWriter ) ); JOptionPane.showMessageDialog(null, 
exception.getMessage() + System.lineSeparator() + 
stringWriter.toString(), "Tray icon skeleton redirection error", 
JOptionPane.ERROR_MESSAGE ); //$NON-NLS-1$ }

   catch(final IOException exception ) {

  final StringWriter stringWriter =new 
StringWriter(); exception.printStackTrace(new PrintWriter( 
strin

Re: Looked-up color fails for -fx-background-color in JavaFX CSS file

2022-05-18 Thread Davide Perini

Yes, I'm sorry, that was the issue.

Thanks
Davide


Il 18/05/2022 14:10, Kevin Rushforth ha scritto:

Hi Davide,

Are you referring to https://bugs.openjdk.java.net/browse/JDK-8268657 ?

I just tried it again, and it works fine for me.

-- Kevin

On 5/18/2022 4:12 AM, Davide Perini wrote:

Hi all,
someone else opened an issue in past on this problem.

I have the exact same problem:
https://mail.openjdk.java.net/pipermail/openjfx-dev/2021-June/030723.html 



Kevin closed the issue because it was not able to reproduce but I can 
reproduce it on JavaFX 18.0.1


Can you double check it please?

Thanks
Davide






Looked-up color fails for -fx-background-color in JavaFX CSS file

2022-05-18 Thread Davide Perini

Hi all,
someone else opened an issue in past on this problem.

I have the exact same problem:
https://mail.openjdk.java.net/pipermail/openjfx-dev/2021-June/030723.html

Kevin closed the issue because it was not able to reproduce but I can 
reproduce it on JavaFX 18.0.1


Can you double check it please?

Thanks
Davide


Re: What can I do with the GStreamer bundled in JavaFX? Can I record the screen?

2022-05-11 Thread Davide Perini

Can't wait to see more GStreamer features inside JavaFX.

Thank you for the answer!

Davide

Il 11/05/2022 13:27, Kevin Rushforth ha scritto:
GStreamer is used by the JavaFX media API. It is an implementation 
detail, and is not exposed. There are no media capture APIs, although 
that is something we have considered providing in the future.


-- Kevin


On 5/10/2022 1:02 PM, Davide Perini wrote:

Hi all,
I haven't understood what part of GStreamer is included in JavaFX.

Can I record the screen with it using d3d11screencapturesrc or 
ximagesrc?


Thanks
Davide






What can I do with the GStreamer bundled in JavaFX? Can I record the screen?

2022-05-10 Thread Davide Perini

Hi all,
I haven't understood what part of GStreamer is included in JavaFX.

Can I record the screen with it using d3d11screencapturesrc or ximagesrc?

Thanks
Davide


Re: Jpopupmenu Bug/Glitch When Showing Submenu

2022-05-09 Thread Davide Perini

I add a video that shows the issue.
https://www.youtube.com/shorts/IYq_yHemsgA

as you can see, there is no issue until I put the mouse pointer over the 
JMenu (submenu),

once I put the mouse on the JMenu the entire JPopupMenu shows the glitch.

Thanks
Davide

Il 09/05/2022 18:04, Davide Perini ha scritto:
I can't load images unfortunantly but this is the minimum code to 
reproduce the issue.
It seems that there is no way to add JMenu to JPopupMenu without 
having this glitch.


Is this a problem in JavaFX?
I see non obvious errors in my code.

Thanks
Davide

package org.dpsoftware; import org.dpsoftware.config.Constants; import 
org.dpsoftware.utilities.CommonUtility; import javax.swing.*; import 
java.awt.*; import java.awt.event.*; import java.io.IOException; 
import java.io.PrintWriter; import java.io.Serial; import 
java.io.StringWriter; import java.net.URI; import 
java.net.URISyntaxException; public class TrayIconMainClass {


   private static final StringTRAY_ICON_SKELETON_PROJECT_URL 
="https://github.com/Sylvain-Bugat/tray-icon-skeleton;; /** Load the 
tray icon image to display in the tray bar*/ private static 
ImageTRAY_ICON_IMAGE = Toolkit.getDefaultToolkit().getImage( 
TrayIconMainClass.class.getClassLoader().getResource("tray_play.png" ) 
); //$NON-NLS-1$ static JMenuaspectRatioSubMenu; /** * Main program 
launched in the jar file * * @param args * @throws IOException */ 
private void initializeImages() {

  // load an image }

   public static void main(final String args[] )throws IOException {
  aspectRatioSubMenu =new JMenu("dadsdsa"); JMenuItem menuItam 
=new JMenuItem("dada"); aspectRatioSubMenu.add(menuItam); //Test if 
the system support the system tray if( SystemTray.isSupported() ) {


 //Try to use the system Look try {
    UIManager.setLookAndFeel( 
UIManager.getCrossPlatformLookAndFeelClassName() ); }

 catch(final ClassNotFoundException exception ) {
    //If System Look is not supported, stay with the 
default one }

 catch(final InstantiationException exception ) {
    //If System Look is not supported, stay with the 
default one }

 catch(final IllegalAccessException exception ) {
    //If System Look is not supported, stay with the 
default one }

 catch(final UnsupportedLookAndFeelException exception ) {
    //If System Look is not supported, stay with the 
default one }


 //Add the icon to the system tray final TrayIcon trayIcon 
=new TrayIcon(TRAY_ICON_IMAGE, "Tray icon skeleton" ); 
trayIcon.setImageAutoSize(true ); // Get the system default browser to 
open execution details final Desktop desktop = Desktop.getDesktop(); 
//Action listener to get click on top menu items final ActionListener 
menuListener =new ActionListener() {

    @SuppressWarnings("synthetic-access")
    public void actionPerformed(final ActionEvent e) {

   if( JMenuItem.class.isInstance( e.getSource() ) ){

  JMenuItem jMenuItem = (JMenuItem) e.getSource(); 
JOptionPane.showMessageDialog(null, "It works, you clicked on:" + 
System.lineSeparator() + jMenuItem.getText(), "Your skill is great!!", 
JOptionPane.INFORMATION_MESSAGE ); //$NON-NLS-1$ }

    }
 }; //About menu listener final ActionListener aboutListener 
=new ActionListener() {

    @SuppressWarnings("synthetic-access")
    public void actionPerformed(final ActionEvent e) {

   //Open an URL using the system default browser try {
  final URI executionURI =new 
URI(TRAY_ICON_SKELETON_PROJECT_URL ); desktop.browse( executionURI ); }

   catch(final URISyntaxException exception ) {

  final StringWriter stringWriter =new StringWriter(); 
exception.printStackTrace(new PrintWriter( stringWriter ) ); 
JOptionPane.showMessageDialog(null, exception.getMessage() + 
System.lineSeparator() + stringWriter.toString(), "Tray icon skeleton 
redirection error", JOptionPane.ERROR_MESSAGE ); //$NON-NLS-1$ }

   catch(final IOException exception ) {

  final StringWriter stringWriter =new StringWriter(); 
exception.printStackTrace(new PrintWriter( stringWriter ) ); 
JOptionPane.showMessageDialog(null, exception.getMessage() + 
System.lineSeparator() + stringWriter.toString(), "Tray icon skeleton 
redirection error", JOptionPane.ERROR_MESSAGE ); //$NON-NLS-1$ }

    }
 }; //Get the system tray final SystemTray tray = 
SystemTray.getSystemTray(); //Tray icon skeleton exit listener final 
ActionListener exitListener =new ActionListener() {

    @SuppressWarnings("synthetic-access")
    public void actionPerformed(final ActionEvent e) {
   //Important: remove the icon from the tray to dispose 
it tray.remove(trayIcon ); System.exit(0 ); }

Re: Jpopupmenu Bug/Glitch When Showing Submenu

2022-05-09 Thread Davide Perini
.out.println("DAD"); }

 //Adding some menu separator popupMenu.addSeparator(); final JMenuItem aboutItem =new JMenuItem("About Tray icon skeleton" ); //$NON-NLS-1$ popupMenu.add( aboutItem ); aboutItem.addActionListener( aboutListener ); //Adding some menu separator popupMenu.addSeparator(); //Quit menu to terminate the tray icon by disposing the tray icon final JMenuItem exitItem =new JMenuItem("Quit" ); //$NON-NLS-1$ popupMenu.add( exitItem ); exitItem.addActionListener( exitListener ); //Hidden dialog displayed behing the system tray to auto hide the 
popup menu when clicking somewhere else on the screen final JDialog hiddenDialog =new JDialog (); hiddenDialog.setSize(1000, 1000 ); //Listener based on the focus to auto hide the hidden dialog and the 
popup menu when the hidden dialog box lost focus hiddenDialog.addWindowFocusListener(new WindowFocusListener() {


public void windowLostFocus (final WindowEvent e ) {
   hiddenDialog.setVisible(false ); }

public void windowGainedFocus (final WindowEvent e ) {
   //Nothing to do }
 }); popupMenu.add(aspectRatioSubMenu); //Add a listener to display the popupmenu and the hidden dialog box 
when the tray icon is clicked trayIcon.addMouseListener(new MouseAdapter() {


public void mouseReleased(final MouseEvent e) {

   if( e.isPopupTrigger() ) {
  //Display the menu at the position of the mouse //The dialog is also 
displayed at this position but it is behind the system tray popupMenu.setLocation( e.getX(), e.getY() ); hiddenDialog.setLocation( e.getX(), e.getY() ); //Important: set the hidden dialog as the invoker to hide the menu 
with this dialog lost focus popupMenu.setInvoker(hiddenDialog ); hiddenDialog.setVisible(true ); popupMenu.setVisible(true ); }

}
 }); //Add the icon to the system tray try {
tray.add( trayIcon ); }
 catch (final AWTException e ) {

final StringWriter stringWriter =new StringWriter(); e.printStackTrace(new PrintWriter( 
stringWriter ) ); JOptionPane.showMessageDialog(null, "tray icon cannot be added to the system 
tray" + System.lineSeparator() + e.getMessage() + System.lineSeparator() + 
stringWriter.toString(), "Tray icon skeleton initialization error", 
JOptionPane.ERROR_MESSAGE ); //$NON-NLS-1$ System.exit(2 ); }
  }
  else {
 //if the System is not compatible with SystemTray JOptionPane.showMessageDialog(null, "SystemTray cannot be initialized" + System.lineSeparator() +"this system is not compatible!", "Tray icon skeleton initialization 
error", JOptionPane.ERROR_MESSAGE ); //$NON-NLS-1$ //$NON-NLS-2$ System.exit(1 ); }


   }
}









Il 08/05/2022 01:26, Davide Perini ha scritto:

Hi all,
I'm using a JPopupMenu to workaround the lack of a "real tray icon" in 
JavaFX.


This is the simple code I'm using:
https://github.com/Sylvain-Bugat/tray-icon-skeleton/blob/master/src/main/java/com/github/sbugat/trayiconskeleton/TrayIconMainClass.java 



It all works well until I add a submenu (JMenu) to my JPopupMenu.

This is how the tray looks when no glitch appear:


and this is the tray how looks like when the glitch of the submenu 
appers:





to trigger the glitch I can simply move the mouse over the submenu and 
then move the mouse over the other jmenuitem.


Any idea on why I have this error?

Thanks
Davide


Jpopupmenu Bug/Glitch When Showing Submenu

2022-05-07 Thread Davide Perini

Hi all,
I'm using a JPopupMenu to workaround the lack of a "real tray icon" in 
JavaFX.


This is the simple code I'm using:
https://github.com/Sylvain-Bugat/tray-icon-skeleton/blob/master/src/main/java/com/github/sbugat/trayiconskeleton/TrayIconMainClass.java

It all works well until I add a submenu (JMenu) to my JPopupMenu.

This is how the tray looks when no glitch appear:


and this is the tray how looks like when the glitch of the submenu appers:




to trigger the glitch I can simply move the mouse over the submenu and 
then move the mouse over the other jmenuitem.


Any idea on why I have this error?

Thanks
Davide


How to change the default color used for selected elements?

2022-04-09 Thread Davide Perini

Hi all,
as title.

How to change the default color used for selected elements?
Is there a way to do it with CSS?

Thank you!
Davide


Is it wise to use JavaFX 18 with JDK 17?

2022-03-27 Thread Davide Perini

Hi all,
is it wise to use JavaFX 18 with JDK 17?

Is there any particular reasons why not to use a "newer JavaFX" version 
with an "older JDK"?


Where can I see what are the supported JDK for the JavaFX version I'm 
running?


Thank you!
Davide


Re: Check if a label is ellipsized and then add a tooltip

2022-02-25 Thread Davide Perini
It's a good workaround even if I would have preferred something built in 
into the framework... :)


Thank you Kevin!


Il 24/02/2022 01:21, Kevin Rushforth ha scritto:
I don't know of a way to determine whether the text of a labeled is 
currently being displayed truncated with ellipses. There isn't a 
(read-only) overrun or displayedText property, either of which would 
allow an app to know.


The only thing I can think of to work around this is to estimate the 
size that the text would need and compare it to the available size.


-- Kevin


On 2/23/2022 5:03 AM, Davide Perini wrote:

Hi,
I have a label inside a gridpane.

It is possible to check if the label is ellipsized and if yes, add a 
tootltip to let the user read the entire label when overing the label 
with the mouse?


Thanks
Davide






Check if a label is ellipsized and then add a tooltip

2022-02-23 Thread Davide Perini

Hi,
I have a label inside a gridpane.

It is possible to check if the label is ellipsized and if yes, add a 
tootltip to let the user read the entire label when overing the label with 
the mouse?


Thanks
Davide


Re: Scene builder crash in IntelliJ 2021.3 and JDK 17.0.1

2021-12-17 Thread Davide Perini

PS: I have this problem on both Windows 11 and Linux Ubuntu 20.04.


Il 16/12/2021 17:01, Davide Perini ha scritto:

As title.

Using IntelliJ 2021.3 and JDK 17.0.1 with JavaFX 17.0.1.

As soon as I open an .fxml it ask me to install scene builder, I 
installed it and now Intellij crashes as soon as I open

an fxml.

Any idea?

Thanks
Davide




Scene builder crash in IntelliJ 2021.3 and JDK 17.0.1

2021-12-16 Thread Davide Perini

As title.

Using IntelliJ 2021.3 and JDK 17.0.1 with JavaFX 17.0.1.

As soon as I open an .fxml it ask me to install scene builder, I 
installed it and now Intellij crashes as soon as I open

an fxml.

Any idea?

Thanks
Davide


Re: JavaFX, show canvas on second scree, works well on Windows but not on Linux

2021-10-16 Thread Davide Perini

The strange things is that it works perfectly on Windows but not on Linux.
Is this a JavaFX bug?

I tried to format code better to make it more readable...

Stage stage = new Stage();
    Group root = new Group();
    Scene s = new Scene(root, 1920, 1080, Color.BLACK);
    GraphicsContext gc;
    Canvas canvas = new Canvas(1920,1080);
    gc = canvas.getGraphicsContext2D();
    canvas.setFocusTraversable(true);
    // Hide canvas on key pressed
    canvas.setOnKeyPressed(t -> {
    stage.setFullScreen(false);
    stage.hide();
    });
    drawThings(gc);
    root.getChildren().add(canvas);
    stage.setScene(s);
    // Show canvas on the correct display number
    Rectangle2D bounds = Screen.getScreens().get(1).getVisualBounds();
    stage.setX(bounds.getMinX());
    stage.setY(bounds.getMinY());
    stage.show();
    stage.setFullScreen(true);

Thanks
Davide


Il 14/10/2021 16:05, Davide Perini ha scritto:

Hi all,
I have a small piece of code that shows a canvas with JavaFX.

I want to display the canvas on the second screen.
This works well in Windows but not on Linux Ubuntu.

Stage stage =new Stage(); Group root =new Group(); Scene s =new 
Scene(root, 1920, 1080, Color.BLACK); GraphicsContext gc; Canvas 
canvas =new Canvas(1920,1080); gc = canvas.getGraphicsContext2D(); 
canvas.setFocusTraversable(true); // Hide canvas on key pressed 
canvas.setOnKeyPressed(t -> {
    stage.setFullScreen(false); stage.hide(); }); drawThings(gc); 
root.getChildren().add(canvas); stage.setScene(s); // Show canvas on 
the second display Rectangle2D bounds = 
Screen.getScreens().get(1).getVisualBounds(); 
stage.setX(bounds.getMinX()); stage.setY(bounds.getMinY()); 
stage.show(); stage.setFullScreen(true);




On Linux the canvas is shown on the first screen.
I have tried swapping the screen index from

// Show canvas on the second display Rectangle2D bounds = 
Screen.getScreens().get(1).getVisualBounds();


to

// Show canvas on the second display Rectangle2D bounds = 
Screen.getScreens().get(0).getVisualBounds();


but same problem.

Any idea?

Thank you
Davide












JavaFX, show canvas on second scree, w

2021-10-14 Thread Davide Perini

Hi all,
I have a small piece of code that shows a canvas with JavaFX.

I want to display the canvas on the second screen.
This works well in Windows but not on Linux Ubuntu.

Stage stage =new Stage(); Group root =new Group(); Scene s =new Scene(root, 1920, 
1080, Color.BLACK); GraphicsContext gc; Canvas canvas =new Canvas(1920,1080); gc = 
canvas.getGraphicsContext2D(); canvas.setFocusTraversable(true); // Hide canvas on 
key pressed canvas.setOnKeyPressed(t -> {
stage.setFullScreen(false); stage.hide(); }); drawThings(gc); 
root.getChildren().add(canvas); stage.setScene(s); // Show canvas on the second 
display Rectangle2D bounds = Screen.getScreens().get(1).getVisualBounds(); 
stage.setX(bounds.getMinX()); stage.setY(bounds.getMinY()); stage.show(); 
stage.setFullScreen(true);



On Linux the canvas is shown on the first screen.
I have tried swapping the screen index from

// Show canvas on the second display Rectangle2D bounds = 
Screen.getScreens().get(1).getVisualBounds();

to

// Show canvas on the second display Rectangle2D bounds = 
Screen.getScreens().get(0).getVisualBounds();

but same problem.

Any idea?

Thank you
Davide










Get location from HTML 5 webview

2021-09-05 Thread Davide Perini

Hi all,
is it possible to get the location from an HTML5 webview?

Thanks
Davide


Re: Get how many monitors are connected.

2021-09-05 Thread Davide Perini

I would like to get the same order Windows uses.

Thanks
Davide

Il 03/09/2021 23:51, John Hendrikx ha scritto:

In what order would you want them?

Windows itself isn't all that reliable either -- it will randomly 
reorder my screens sometimes when resuming from sleep depending on how 
quickly all the monitors respond. Currently my primary monitor is 
screen 2 according to Windows.


Using the bounds you can determine however what is the left/right most 
screen and which screens go in between.


--John

On 03/09/2021 16:58, Davide Perini wrote:

mmm...
I confirm that it isn't really reliable.

I have noticed the Screen.getScreens() have primary screen as the first
element, but other screens are just in a non correct order.

Hope that JavaFX will find a way to overcome this problem.

Thank you
Davide


Il 03/09/2021 16:39, Kevin Rushforth ha scritto:

I don't think so. You can find out the primary monitor with
Screen.getPrimary(), and you can determine the positioning of all
screens relative to each other using the visual bounds of each screen.
There isn't any guarantee, though, that the list of screens is
ordered, so if there are more than 2 screens, I don't know of a
reliable way to distinguish the second, third, and so on.

-- Kevin


On 9/3/2021 7:06 AM, Davide Perini wrote:

Hi,
I'm using this to get how many monitors is connected to the PC:

for (Screen screen : Screen.getScreens()) {


}


Is there a way to know what is the first, second and third monitor?
Using Windows and I would like to see what is the first monitor set
in windows, what's the second and so on.

Is this possible using JavaFX?

Thanks
Davide









Re: Get how many monitors are connected.

2021-09-03 Thread Davide Perini

mmm...
I confirm that it isn't really reliable.

I have noticed the Screen.getScreens() have primary screen as the first 
element, but other screens are just in a non correct order.


Hope that JavaFX will find a way to overcome this problem.

Thank you
Davide


Il 03/09/2021 16:39, Kevin Rushforth ha scritto:
I don't think so. You can find out the primary monitor with 
Screen.getPrimary(), and you can determine the positioning of all 
screens relative to each other using the visual bounds of each screen. 
There isn't any guarantee, though, that the list of screens is 
ordered, so if there are more than 2 screens, I don't know of a 
reliable way to distinguish the second, third, and so on.


-- Kevin


On 9/3/2021 7:06 AM, Davide Perini wrote:

Hi,
I'm using this to get how many monitors is connected to the PC:

for (Screen screen : Screen.getScreens()) {


}


Is there a way to know what is the first, second and third monitor?
Using Windows and I would like to see what is the first monitor set 
in windows, what's the second and so on.


Is this possible using JavaFX?

Thanks
Davide







Get how many monitors are connected.

2021-09-03 Thread Davide Perini

Hi,
I'm using this to get how many monitors is connected to the PC:

for (Screen screen : Screen.getScreens()) {


}


Is there a way to know what is the first, second and third monitor?
Using Windows and I would like to see what is the first monitor set in 
windows, what's the second and so on.


Is this possible using JavaFX?

Thanks
Davide



java: module not found: eu.hansolo.medusa

2021-08-15 Thread Davide Perini

Hi all,
I'm trying to use the medusa gauges.

I have added those lines to my pom.xml

 eu.hansolo Medusa 
16.0.0 



and this to my module-info.java

requires eu.hansolo.medusa;

I can compile use mvn clean install but I cannot run my main file from 
intellij.

I get this error:

java: module not found: eu.hansolo.medusa

Any idea?

Thanks
Davide


Re: Java FX dark theme

2021-07-25 Thread Davide Perini

Subscribed to the channel, very interesting chanenel congrats.
I'll do the way you suggested, thanks!

Do you have some tips on how to style the tray icon?
I have implemented a tray icon following this tutorial
https://docs.oracle.com/javase/tutorial/uiswing/misc/systemtray.html
but styling a popup menu seems impossible...

Tanks you
Davide


Il 24/07/2021 19:14, Tom Schindl ha scritto:

Hi,

As the picture did not made it through i can only guess that we talk 
about the window trim who is controlled by the OS and so JavaFX has no 
control how it is drawn.


So the „solution“ is to use a StageStyle.UNDECORATED and draw a trim 
with min/max/close yourself, implement window resizer,...


 I‘ve put the word solution in quotes because once you do that you 
loose many native festures like snapping to other windows or desktop 
edges.


I gave a talk last year where i talk a bit about this stuff - 
https://m.youtube.com/watch?v=NusKg2ZWnrg 
<https://m.youtube.com/watch?v=NusKg2ZWnrg> the stuff you are 
interested in starts around minute 9:20


Tom

Von meinem iPhone gesendet

Am 24.07.2021 um 18:14 schrieb Davide Perini 
:


Hi all,
I am using some CSS rules to create a "dark theme".

Is it possible to change the color of the window?



As you can see in this picture I have a dark theme but the window 
border is white. can I change that color?


Thank you.
Davide




JavaFX tray icon.

2021-07-24 Thread Davide Perini

Hi guys,
will we ever see a tray icon support in JavaFX?

I'm trying to style my tray icon PopupMenu with AWT but sincerely I'm 
not able to do it.


Hope that JavaFX will support tray icon soon.

Is there some hope to see tray icon in Java FX?

Thanks
Davide


Java FX dark theme

2021-07-24 Thread Davide Perini

Hi all,
I am using some CSS rules to create a "dark theme".

Is it possible to change the color of the window?



As you can see in this picture I have a dark theme but the window border 
is white. can I change that color?


Thank you.
Davide


Re: TimePicker

2021-05-26 Thread Davide Perini

Thank you for the answer, I appreciate it.

I love Scene Builder and most of the things that you can include from 
elsewhere are not compatible with Scene Builder,

this is the reason why I asked.

In any case, long live JavaFX, I really enjoy using it. :)

Thanks,
Davide


Il 26/05/2021 16:47, Tom Eugelink ha scritto:
Because OpenJFX does not have any? :-D Also if you want a stand alone 
datepicker instead of one attached to a text field you're out of luck.


But there is nothing wrong with not having everything in one library, 
and including what you need from elsewhere. OpenJFX has enough work to 
do in other areas.





On 2021-05-26 16:29, Davide Perini wrote:

But why I need JFXtras to have a timepicker? O_o



Il 26/05/2021 16:14, Tom Eugelink ha scritto:

JFXtras has one.

https://github.com/JFXtras/jfxtras/blob/11/jfxtras-controls/src/main/java/jfxtras/scene/control/LocalTimePicker.java 




On 2021-05-26 15:03, Davide Perini wrote:

Hi guys,
is there a simple time picker in JavaFX?

I only see DatePicker but not TimePicker.

Thanks
Davide











Re: TimePicker

2021-05-26 Thread Davide Perini

But why I need JFXtras to have a timepicker? O_o



Il 26/05/2021 16:14, Tom Eugelink ha scritto:

JFXtras has one.

https://github.com/JFXtras/jfxtras/blob/11/jfxtras-controls/src/main/java/jfxtras/scene/control/LocalTimePicker.java 




On 2021-05-26 15:03, Davide Perini wrote:

Hi guys,
is there a simple time picker in JavaFX?

I only see DatePicker but not TimePicker.

Thanks
Davide







TimePicker

2021-05-26 Thread Davide Perini

Hi guys,
is there a simple time picker in JavaFX?

I only see DatePicker but not TimePicker.

Thanks
Davide


JavaFX 15 with Java 14?

2021-02-05 Thread Davide Perini

Hi all,
is it safe to use JavaFX 15 with Java 14?

How JavaFX is related to Java version?

Thanks
Davide


Re: Show a stage on a second and third monitor, wrong order in JavaFX Screen.getScreens()

2021-01-08 Thread Davide Perini

Forgive me, it was my fault, JavaFx starts from index 0.

Regards,
Davide

Il 09/01/2021 02:38, Davide Perini ha scritto:

Hi all,
I have a triple display setup.

I want to display a stage on the second and third monitor.
To do this I use the displayNumber variable and this small snippet

for (Screen screen : Screen.getScreens()) {
    Rectangle2D bounds = screen.getVisualBounds(); if (index == 
displayNumber) {

    stage.setX(bounds.getMinX()); stage.setY(bounds.getMinY()); }
    index++; }

It works quite well since I can choose where the stage is displayed 
based on the displayNumber variable but

that number does not corresponds to the Windows order.

In Windows display #2 is the one on my left, in JavaFX it is the one 
on my right.


Is there a way to get a ordered collections of the displays?

Screen.getScreens()

Thanks
Davide








Show a stage on a second and third monitor, wrong order in JavaFX Screen.getScreens()

2021-01-08 Thread Davide Perini

Hi all,
I have a triple display setup.

I want to display a stage on the second and third monitor.
To do this I use the displayNumber variable and this small snippet

for (Screen screen : Screen.getScreens()) {
Rectangle2D bounds = screen.getVisualBounds(); if (index == displayNumber) {
stage.setX(bounds.getMinX()); stage.setY(bounds.getMinY()); }
index++; }

It works quite well since I can choose where the stage is displayed 
based on the displayNumber variable but

that number does not corresponds to the Windows order.

In Windows display #2 is the one on my left, in JavaFX it is the one on 
my right.


Is there a way to get a ordered collections of the displays?

Screen.getScreens()

Thanks
Davide






Re: Can't load fxml on Macos

2020-10-20 Thread Davide Perini

I'm creating my binary file using JPackage but I don't signed the binary.
can this be the problem.

why a simple line like this

FXMLLoader fxmlLoader =new FXMLLoader(GUIManager.class.getResource( fxml + 
Constants.FXML));

return null if it works on WIndows and Linux?

Thanks
Davide





Il 20/10/2020 15:54, Dirk Lemmermann ha scritto:

I worked with JavaFX on MacOS since 2013 and except for issues related to font 
rendering I never got the impression that MacOS is the black sheep. I also 
happen to know that many of the developers that are working on JavaFX use MacOS.

Dirk


On Oct 20, 2020, at 12:28 PM, Davide Perini  
wrote:

Hi all,
this code works well on both Windows and Linux running Java 15 on JavaFX 15.

FXMLLoader fxmlLoader =new FXMLLoader(GUIManager.class.getResource( fxml + 
Constants.FXML)); return fxmlLoader.load();


It doesn't work on Macos returning a nullpointer exception.

Any idea? Why Macos is always the black sheep?

Thanks
Davide




Can't load fxml on Macos

2020-10-20 Thread Davide Perini

Hi all,
this code works well on both Windows and Linux running Java 15 on JavaFX 15.

FXMLLoader fxmlLoader =new FXMLLoader(GUIManager.class.getResource( fxml + 
Constants.FXML)); return fxmlLoader.load();


It doesn't work on Macos returning a nullpointer exception.

Any idea? Why Macos is always the black sheep?

Thanks
Davide


Re: JPackage and JavaFX

2020-08-22 Thread Davide Perini

Just for reference,
I was using maven to bundle JavaFX, using OpenJDK I had that error,
using AdoptOpenJDK solved the problem.

Regards,
Davide


Il 20/08/2020 17.07, Kevin Rushforth ha scritto:

That should be "This list is *not* the right place..."

On 8/20/2020 8:06 AM, Kevin Rushforth wrote:
This list is be the right place to discuss the javapackager tool 
(regardless of whether or not it is a fork of the old 
java(fx)packager tool that used to be part of openjfx).


-- Kevin


On 8/20/2020 7:12 AM, Bardot Jérôme wrote:

i personaly try to use javapackager
https://github.com/fvarrui/JavaPackager

for me this tool need to be hightlight and it need feedback

On 20/08/2020 02:52, Davide Perini wrote:

Hi all,
is there someone able to use JPackage with JavaFX under ubuntu with 
JDK14?


When I try to use jpackage on ubuntu I get this error:

jpackage -n TestFX -i target --main-jar 
tmyjar-jar-with-dependencies.jar
-d output --module-path 
/home/sblantipodi/dev/jdk/javafx-sdk-14.0.2.1/lib

WARNING: Using incubator modules: jdk.incubator.jpackage

java.lang.module.FindException: Hash of jdk.management.jfr
(a405f735790e653ae6ad1ef35615c78a555389cc5076c74c52f3790a13351666)
differs to expected hash
(06d891a3ae65eb002ec7c3adeac782a67e5c76c5f1569cbb4e9bdace4e220f23)
recorded in java.base

Any idea?

Thanks








Re: JPackage and JavaFX

2020-08-21 Thread Davide Perini
But I haven't installed JavaFX manually, I'm getting it with maven, like 
this:

this is the pom.xml
https://github.com/sblantipodi/firefly_luciferin/blob/master/pom.xml
as you can see I get JavaFX from maven repos.
It works on Windows.

Any idea?

Thanks
Davide

Il 20/08/2020 07.15, Tobias Oelgarte ha scritto:
I have no problem using jpackage together with JDK 14 and JavaFX 14/16 
under Ubuntu 18.04.


My guess is that you run the jpackage command from a different JDK 
version, which loads it's own module "java.base" and references it's 
own module "jdk.management.jfr". This is different from the one found 
inside the ".. javafx-sdk-14.0.2.1/lib" directory, resulting in the 
hash conflict.


Tobias Oelgarte
Mail: tobias.oelga...@gmail.com

On 20.08.20 02:52, Davide Perini wrote:

Hi all,
is there someone able to use JPackage with JavaFX under ubuntu with 
JDK14?


When I try to use jpackage on ubuntu I get this error:

jpackage -n TestFX -i target --main-jar 
tmyjar-jar-with-dependencies.jar -d output --module-path 
/home/sblantipodi/dev/jdk/javafx-sdk-14.0.2.1/lib

WARNING: Using incubator modules: jdk.incubator.jpackage

java.lang.module.FindException: Hash of jdk.management.jfr 
(a405f735790e653ae6ad1ef35615c78a555389cc5076c74c52f3790a13351666) 
differs to expected hash 
(06d891a3ae65eb002ec7c3adeac782a67e5c76c5f1569cbb4e9bdace4e220f23) 
recorded in java.base


Any idea?

Thanks




JPackage and JavaFX

2020-08-19 Thread Davide Perini

Hi all,
is there someone able to use JPackage with JavaFX under ubuntu with JDK14?

When I try to use jpackage on ubuntu I get this error:

jpackage -n TestFX -i target --main-jar tmyjar-jar-with-dependencies.jar 
-d output --module-path /home/sblantipodi/dev/jdk/javafx-sdk-14.0.2.1/lib

WARNING: Using incubator modules: jdk.incubator.jpackage

java.lang.module.FindException: Hash of jdk.management.jfr 
(a405f735790e653ae6ad1ef35615c78a555389cc5076c74c52f3790a13351666) 
differs to expected hash 
(06d891a3ae65eb002ec7c3adeac782a67e5c76c5f1569cbb4e9bdace4e220f23) 
recorded in java.base


Any idea?

Thanks


Tray Icon?

2020-07-31 Thread Davide Perini

Hi all guys,
love JavaFX, it's so productive, so easy to use, can't understand why 
the world don't use it "for some tasks".


I know that tray icon can be easily done with AWT but is there something 
for JavaFX?

Is it possible to create a tray icon with JavaFX?

Thanks
Davide


Fullscreen canvas

2020-07-23 Thread Davide Perini

Hi all,
is it possible to create a fullscreen canvas? 

I don't find a good doc for JavaFX and canvas. 


Thanks
Davide


Is scene builder abandoned? And what about JavaFX?

2020-07-22 Thread Davide Perini

Hi all,
love JavaFX and I think that it is very productive, super awesome. 


It is pretty sad that scene builder seems so old and unsupported, scene
builder still not support spinner and many "newer" elements. Why?

Is JavaFX dead or is still active?
Since Oracle "abandon" I see no documentation of the new features
implemented.
Is there an official documentation for JavaFX now? 


Thanks
Davide


Re: How to create a fat jar for my JavaFX program?

2020-07-20 Thread Davide Perini

Done it here.

https://github.com/sblantipodi/JavaFastScreenCapture/blob/JavaFXJavaModule/pom.xml

If you read my sources there is how to configure the maven pom.
You need then create a simple class with a main that doesn't extends 
application that simply call the main in the class that extends application.


Hope it helped

In data 20 luglio 2020 21:25:23 Davide Perini 
 ha scritto:



PS: I add that I'm not new to maven,
before java fx, I had a fat jar with gstreamer library, jna, and so on.

the only problem I have is that it seems that I'm not able to bundle
javafx with my fat jar.



Il 20/07/2020 20.55, Davide Perini ha scritto:

I agree, don't want to download a JDK.
Is there a way to simply to it the old but good way using maven
assembly plugin or shade plugin?

I am following this guide here:
https://openjfx.io/openjfx-docs/#modular

I have done what they suggest in my pom file:

 org.openjfx
javafx-controls
${javafx.version}  
org.openjfx javafx-fxml
${javafx.version}  
org.openjfx
javafx-graphics 14
win 


 org.openjfx
javafx-maven-plugin
${javafx.maven.plugin.version} 
org.dpsoftware.FastScreenCapture
  
org.apache.maven.plugins
maven-assembly-plugin 
${project.build.directory}/
JavaFastScreenCapture 
 
make-executable-jar-with-dependencies package
 single   
 true
org.dpsoftware.FastScreenCapture 
 
jar-with-dependencies 
   


jar with dependencies says

Error: JavaFX runtime components are missing, and are required to run
this application


still don't understand how to do it the right way.
I would like to do it with maven, is this possible?

Thanks,
Davide

Il 20/07/2020 20.26, Scott Palmer ha scritto:

jlink and jdeps are module-based, so you do have to be careful.
Neither will work properly when you try to run it against a
non-modular project (found that out the hard way when Java 11 broke
the world by removing the EE modules from Java SE and no modules were
available to replace them), but you can use them to make a JRE image
from a set of modules, such as those supplied by OpenJFX.

I still think the .jmod files should be hosted by artifact
repositories to make this work smoothly.  Downloading an SDK, seems
so old-school when we have good dependency-management tools.

Once you have a JRE image that includes JavaFX, then your application
Jar files (all of them, no need to make anything 'fat') can easily be
bundled with that JRE using jpackage.

I have done Gradle scripts to do all that and it wasn’t difficult.

Scott


On Jul 20, 2020, at 1:39 PM, Michael Paus  wrote:

In order to create a real platform installer with jpackage and
jlink/jdeps you don't have to use the java
module system at all. Have a look at this tutorial which I
co-autored together with Dirk Lemmermann:
<https://github.com/dlemmermann/JPackageScriptFX>
Michael

Am 20.07.20 um 19:25 schrieb Davide Perini:

Unfortunantly so few dependencies supports Java Modules this day,
so fat JAR is the only way I can do it.

Thanks

Il 20/07/2020 02.50, Scott Palmer ha scritto:

The JavaFX classes are there, but what about the native libraries?

A fat jar isn’t a good way to distribute a Java application these
days. Now you should probably be using jpackage and/or jlink to
bundle your application classes with a runtime suitable for
running the application.

Scott


On Jul 19, 2020, at 5:32 PM, Davide Perini
 wrote:

Hi all,
thanks for the great project, I love JavaFX.

I always used the maven plugin to crete fat jars with all my
deps. The resulting jar is an executable one and ready to use.

This is my pom that create the fat jar.

but when I try to exceute the jar I get this error:

Error: JavaFX runtime components are missing, and are required to
run this appli
cation


if I explode the fat jar I can see that there are the javafx
class in it. what am I doing wrong?

Thanks
Davide

 org.openjfx
javafx-maven-plugin
${javafx.maven.plugin.version} 
org.dpsoftware.FastScreenCapture
  
org.apache.maven.plugins
maven-assembly-plugin 
${project.build.directory}/
JavaFastScreenCapture 
 
make-executable-jar-with-dependencies
package  single 
  
true
org.dpsoftware.FastScreenCapture
  
jar-with-dependencies
   








Re: How to create a fat jar for my JavaFX program?

2020-07-20 Thread Davide Perini

PS: I add that I'm not new to maven,
before java fx, I had a fat jar with gstreamer library, jna, and so on.

the only problem I have is that it seems that I'm not able to bundle 
javafx with my fat jar.




Il 20/07/2020 20.55, Davide Perini ha scritto:

I agree, don't want to download a JDK.
Is there a way to simply to it the old but good way using maven 
assembly plugin or shade plugin?


I am following this guide here:
https://openjfx.io/openjfx-docs/#modular

I have done what they suggest in my pom file:

 org.openjfx 
javafx-controls 
${javafx.version}   
org.openjfx javafx-fxml 
${javafx.version}   
org.openjfx 
javafx-graphics 14 
win 



 org.openjfx 
javafx-maven-plugin 
${javafx.maven.plugin.version}  
org.dpsoftware.FastScreenCapture 
   
org.apache.maven.plugins 
maven-assembly-plugin  
${project.build.directory}/ 
JavaFastScreenCapture  
  
make-executable-jar-with-dependencies package 
 single
 true 
org.dpsoftware.FastScreenCapture  
  
jar-with-dependencies  
   



jar with dependencies says

Error: JavaFX runtime components are missing, and are required to run 
this application



still don't understand how to do it the right way.
I would like to do it with maven, is this possible?

Thanks,
Davide

Il 20/07/2020 20.26, Scott Palmer ha scritto:
jlink and jdeps are module-based, so you do have to be careful.  
Neither will work properly when you try to run it against a 
non-modular project (found that out the hard way when Java 11 broke 
the world by removing the EE modules from Java SE and no modules were 
available to replace them), but you can use them to make a JRE image 
from a set of modules, such as those supplied by OpenJFX.


I still think the .jmod files should be hosted by artifact 
repositories to make this work smoothly.  Downloading an SDK, seems 
so old-school when we have good dependency-management tools.


Once you have a JRE image that includes JavaFX, then your application 
Jar files (all of them, no need to make anything 'fat') can easily be 
bundled with that JRE using jpackage.


I have done Gradle scripts to do all that and it wasn’t difficult.

Scott


On Jul 20, 2020, at 1:39 PM, Michael Paus  wrote:

In order to create a real platform installer with jpackage and 
jlink/jdeps you don't have to use the java
module system at all. Have a look at this tutorial which I 
co-autored together with Dirk Lemmermann:

<https://github.com/dlemmermann/JPackageScriptFX>
Michael

Am 20.07.20 um 19:25 schrieb Davide Perini:
Unfortunantly so few dependencies supports Java Modules this day, 
so fat JAR is the only way I can do it.


Thanks

Il 20/07/2020 02.50, Scott Palmer ha scritto:

The JavaFX classes are there, but what about the native libraries?

A fat jar isn’t a good way to distribute a Java application these 
days. Now you should probably be using jpackage and/or jlink to 
bundle your application classes with a runtime suitable for 
running the application.


Scott

On Jul 19, 2020, at 5:32 PM, Davide Perini 
 wrote:


Hi all,
thanks for the great project, I love JavaFX.

I always used the maven plugin to crete fat jars with all my 
deps. The resulting jar is an executable one and ready to use.


This is my pom that create the fat jar.

but when I try to exceute the jar I get this error:

Error: JavaFX runtime components are missing, and are required to 
run this appli

cation


if I explode the fat jar I can see that there are the javafx 
class in it. what am I doing wrong?


Thanks
Davide

 org.openjfx 
javafx-maven-plugin 
${javafx.maven.plugin.version}  
org.dpsoftware.FastScreenCapture 
   
org.apache.maven.plugins 
maven-assembly-plugin  
${project.build.directory}/ 
JavaFastScreenCapture  
  
make-executable-jar-with-dependencies 
package  single  
   
true 
org.dpsoftware.FastScreenCapture 
   
jar-with-dependencies 










Re: How to create a fat jar for my JavaFX program?

2020-07-20 Thread Davide Perini

Ok solved it reading this stackoverflow:
https://stackoverflow.com/questions/52653836/maven-shade-javafx-runtime-components-are-missing

thanks to all

Il 20/07/2020 20.55, Davide Perini ha scritto:

I agree, don't want to download a JDK.
Is there a way to simply to it the old but good way using maven 
assembly plugin or shade plugin?


I am following this guide here:
https://openjfx.io/openjfx-docs/#modular

I have done what they suggest in my pom file:

 org.openjfx 
javafx-controls 
${javafx.version}   
org.openjfx javafx-fxml 
${javafx.version}   
org.openjfx 
javafx-graphics 14 
win 



 org.openjfx 
javafx-maven-plugin 
${javafx.maven.plugin.version}  
org.dpsoftware.FastScreenCapture 
   
org.apache.maven.plugins 
maven-assembly-plugin  
${project.build.directory}/ 
JavaFastScreenCapture  
  
make-executable-jar-with-dependencies package 
 single
 true 
org.dpsoftware.FastScreenCapture  
  
jar-with-dependencies  
   



jar with dependencies says

Error: JavaFX runtime components are missing, and are required to run 
this application



still don't understand how to do it the right way.
I would like to do it with maven, is this possible?

Thanks,
Davide

Il 20/07/2020 20.26, Scott Palmer ha scritto:
jlink and jdeps are module-based, so you do have to be careful.  
Neither will work properly when you try to run it against a 
non-modular project (found that out the hard way when Java 11 broke 
the world by removing the EE modules from Java SE and no modules were 
available to replace them), but you can use them to make a JRE image 
from a set of modules, such as those supplied by OpenJFX.


I still think the .jmod files should be hosted by artifact 
repositories to make this work smoothly.  Downloading an SDK, seems 
so old-school when we have good dependency-management tools.


Once you have a JRE image that includes JavaFX, then your application 
Jar files (all of them, no need to make anything 'fat') can easily be 
bundled with that JRE using jpackage.


I have done Gradle scripts to do all that and it wasn’t difficult.

Scott


On Jul 20, 2020, at 1:39 PM, Michael Paus  wrote:

In order to create a real platform installer with jpackage and 
jlink/jdeps you don't have to use the java
module system at all. Have a look at this tutorial which I 
co-autored together with Dirk Lemmermann:

<https://github.com/dlemmermann/JPackageScriptFX>
Michael

Am 20.07.20 um 19:25 schrieb Davide Perini:
Unfortunantly so few dependencies supports Java Modules this day, 
so fat JAR is the only way I can do it.


Thanks

Il 20/07/2020 02.50, Scott Palmer ha scritto:

The JavaFX classes are there, but what about the native libraries?

A fat jar isn’t a good way to distribute a Java application these 
days. Now you should probably be using jpackage and/or jlink to 
bundle your application classes with a runtime suitable for 
running the application.


Scott

On Jul 19, 2020, at 5:32 PM, Davide Perini 
 wrote:


Hi all,
thanks for the great project, I love JavaFX.

I always used the maven plugin to crete fat jars with all my 
deps. The resulting jar is an executable one and ready to use.


This is my pom that create the fat jar.

but when I try to exceute the jar I get this error:

Error: JavaFX runtime components are missing, and are required to 
run this appli

cation


if I explode the fat jar I can see that there are the javafx 
class in it. what am I doing wrong?


Thanks
Davide

 org.openjfx 
javafx-maven-plugin 
${javafx.maven.plugin.version}  
org.dpsoftware.FastScreenCapture 
   
org.apache.maven.plugins 
maven-assembly-plugin  
${project.build.directory}/ 
JavaFastScreenCapture  
  
make-executable-jar-with-dependencies 
package  single  
   
true 
org.dpsoftware.FastScreenCapture 
   
jar-with-dependencies 










Re: How to create a fat jar for my JavaFX program?

2020-07-20 Thread Davide Perini

I agree, don't want to download a JDK.
Is there a way to simply to it the old but good way using maven assembly 
plugin or shade plugin?


I am following this guide here:
https://openjfx.io/openjfx-docs/#modular

I have done what they suggest in my pom file:

 org.openjfx javafx-controls ${javafx.version}   
org.openjfx javafx-fxml ${javafx.version}   org.openjfx 
javafx-graphics 14 win 


 org.openjfx javafx-maven-plugin ${javafx.maven.plugin.version}  org.dpsoftware.FastScreenCaptureorg.apache.maven.plugins maven-assembly-plugin  ${project.build.directory}/ JavaFastScreenCapturemake-executable-jar-with-dependencies package  single true org.dpsoftware.FastScreenCapturejar-with-dependencies
 



jar with dependencies says

Error: JavaFX runtime components are missing, and are required to run 
this application



still don't understand how to do it the right way.
I would like to do it with maven, is this possible?

Thanks,
Davide

Il 20/07/2020 20.26, Scott Palmer ha scritto:

jlink and jdeps are module-based, so you do have to be careful.  Neither will 
work properly when you try to run it against a non-modular project (found that 
out the hard way when Java 11 broke the world by removing the EE modules from 
Java SE and no modules were available to replace them), but you can use them to 
make a JRE image from a set of modules, such as those supplied by OpenJFX.

I still think the .jmod files should be hosted by artifact repositories to make 
this work smoothly.  Downloading an SDK, seems so old-school when we have good 
dependency-management tools.

Once you have a JRE image that includes JavaFX, then your application Jar files 
(all of them, no need to make anything 'fat') can easily be bundled with that 
JRE using jpackage.

I have done Gradle scripts to do all that and it wasn’t difficult.

Scott


On Jul 20, 2020, at 1:39 PM, Michael Paus  wrote:

In order to create a real platform installer with jpackage and jlink/jdeps you 
don't have to use the java
module system at all. Have a look at this tutorial which I co-autored together 
with Dirk Lemmermann:
<https://github.com/dlemmermann/JPackageScriptFX>
Michael

Am 20.07.20 um 19:25 schrieb Davide Perini:

Unfortunantly so few dependencies supports Java Modules this day, so fat JAR is 
the only way I can do it.

Thanks

Il 20/07/2020 02.50, Scott Palmer ha scritto:

The JavaFX classes are there, but what about the native libraries?

A fat jar isn’t a good way to distribute a Java application these days. Now you 
should probably be using jpackage and/or jlink to bundle your application 
classes with a runtime suitable for running the application.

Scott


On Jul 19, 2020, at 5:32 PM, Davide Perini  wrote:

Hi all,
thanks for the great project, I love JavaFX.

I always used the maven plugin to crete fat jars with all my deps. The 
resulting jar is an executable one and ready to use.

This is my pom that create the fat jar.

but when I try to exceute the jar I get this error:

Error: JavaFX runtime components are missing, and are required to run this appli
cation


if I explode the fat jar I can see that there are the javafx class in it. what 
am I doing wrong?

Thanks
Davide

 org.openjfx javafx-maven-plugin ${javafx.maven.plugin.version}  org.dpsoftware.FastScreenCaptureorg.apache.maven.plugins 
maven-assembly-plugin  ${project.build.directory}/ JavaFastScreenCapturemake-executable-jar-with-dependencies package 
 single true org.dpsoftware.FastScreenCapturejar-with-dependencies  
   





Re: How to create a fat jar for my JavaFX program?

2020-07-20 Thread Davide Perini

Hi,
thanks for the answer, I appreciate it.

I am trying with jpackage (that bundles my fat jar with some more dlls),
but when I try to run my app I get this error:
Error: JavaFX runtime components are missing, and are required to run 
this application


Any idea?

Thanks



Il 20/07/2020 19.30, Matthias Bläsing ha scritto:

Hi,

Am Montag, den 20.07.2020, 19:25 +0200 schrieb Davide Perini:

Unfortunantly so few dependencies supports Java Modules this day, so
fat JAR is the only way I can do it.

no it is not. There are seveal ways how to bundle native libraries.
jpackage is one way, fat jars are another. And for fat jars of course
you can extract native libraries at runtime (JNA does exactly that).
What is difficult is the handling of native dependencies. If you know
what you are doing you can manually load native libraries in the right
order.

The alternative is to distribute a ZIP file and setup the paths prior
to loading libraries. Changing the java.library.path takes some
reflection, but it is possible to do at runtime.

The javafx jars from maven central hold the native libraries.

Matthias





Re: How to create a fat jar for my JavaFX program?

2020-07-20 Thread Davide Perini
Unfortunantly so few dependencies supports Java Modules this day, so fat 
JAR is the only way I can do it.


Thanks

Il 20/07/2020 02.50, Scott Palmer ha scritto:

The JavaFX classes are there, but what about the native libraries?

A fat jar isn’t a good way to distribute a Java application these days. Now you 
should probably be using jpackage and/or jlink to bundle your application 
classes with a runtime suitable for running the application.

Scott


On Jul 19, 2020, at 5:32 PM, Davide Perini  wrote:

Hi all,
thanks for the great project, I love JavaFX.

I always used the maven plugin to crete fat jars with all my deps. The 
resulting jar is an executable one and ready to use.

This is my pom that create the fat jar.

but when I try to exceute the jar I get this error:

Error: JavaFX runtime components are missing, and are required to run this appli
cation


if I explode the fat jar I can see that there are the javafx class in it. what 
am I doing wrong?

Thanks
Davide

 org.openjfx javafx-maven-plugin ${javafx.maven.plugin.version}  org.dpsoftware.FastScreenCaptureorg.apache.maven.plugins 
maven-assembly-plugin  ${project.build.directory}/ JavaFastScreenCapturemake-executable-jar-with-dependencies package 
 single true org.dpsoftware.FastScreenCapturejar-with-dependencies  
   





How to create a fat jar for my JavaFX program?

2020-07-19 Thread Davide Perini

Hi all,
thanks for the great project, I love JavaFX.

I always used the maven plugin to crete fat jars with all my deps. The 
resulting jar is an executable one and ready to use.


This is my pom that create the fat jar.

but when I try to exceute the jar I get this error:

Error: JavaFX runtime components are missing, and are required to run 
this appli

cation


if I explode the fat jar I can see that there are the javafx class in 
it. what am I doing wrong?


Thanks
Davide

 org.openjfx javafx-maven-plugin ${javafx.maven.plugin.version}  org.dpsoftware.FastScreenCaptureorg.apache.maven.plugins maven-assembly-plugin  ${project.build.directory}/ JavaFastScreenCapturemake-executable-jar-with-dependencies package  single true org.dpsoftware.FastScreenCapturejar-with-dependencies