0

I tried creating a simple swing app with embedded javafx components and was receiving an error message and could not understand the error as I had followed the instruction given. I am new to programming and would like any assistance to solve the problem. I am coding using Eclipse Version: 2022-06 (4.24.0) Build id: 20220609-1112 on Windows 11.

package media;

import javax.swing.JFrame;    
import javax.swing.SwingUtilities;    
import javafx.application.Platform;    
import javafx.embed.swing.JFXPanel;    
import javafx.scene.Group;    
import javafx.scene.Scene;    
import javafx.scene.paint.Color;    
import javafx.scene.text.Text;

public class SFXApp {
    

    private static void initAndShowGUI() {
        //This method is invoked on the EDT thread
        JFrame frame = new JFrame("Swing and JavaFX");
        final JFXPanel fxPanel = new JFXPanel();
        frame.add(fxPanel);
        frame.setSize(300,200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        Platform.runLater(new Runnable() {
            @Override
            public void run() {
                initFX(fxPanel);
            }
        });
        
    }
    
    private static void initFX(JFXPanel fxPanel) {
        //This method is invoked on the JavaFX thread
        Scene scene = createScene();
        fxPanel.setScene(scene);        
        
    }
    
    private static Scene createScene() {
        Group root = new Group();
        Scene scene = new Scene(root, Color.ALICEBLUE);
        Text text = new Text();
        
        text.setText("Welcome JavaFX");
        
        root.getChildren().add(text);
        
        return (scene);     
    }
    
    public static void main(String args[]) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                initAndShowGUI();
                }
        });
    }
}

Java Build Path Libraries

Run Configuration VM

Exception in thread "AWT-EventQueue-0" java.lang.IllegalAccessError: class javafx.embed.swing.JFXPanel (in unnamed module @0x6ee9fee9) cannot access class com.sun.javafx.logging.PlatformLogger (in module javafx.base) because module javafx.base does not export com.sun.javafx.logging to unnamed module @0x6ee9fee9 at javafx.embed.swing.JFXPanel.(JFXPanel.java:136) at media.SFXApp.initAndShowGUI(SFXApp.java:19) at media.SFXApp$2.run(SFXApp.java:57) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Nathaniel
  • 1
  • 1
  • 1
    In addition to the info in the duplicate, see also, the [official openjfx.io documentation](https://openjfx.io/openjfx-docs/#install-javafx) section: "JavaFX and Eclipse Non-modular from IDE". – jewelsea Aug 30 '22 at 22:59
  • Your example fails in several respects; compare it to this working [example](https://stackoverflow.com/a/41160520/230513). – trashgod Aug 30 '22 at 23:05

0 Answers0