Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

JavaFX in an Eclipse view

912421Jan 20 2012 — edited Apr 20 2012
Hello,

I'm trying to create an Eclipse plugin; a regular view that would show some graphical elements using JavaFX. I am using JavaFX 2, Eclipse 3.6 and Java 1.6.
1. All I did is that I created the most simple view from the Eclipse example projects.
2. Then I created a new plugin JavaFX.lib using the "Plug-in from Existing JAR Archives". It contains the deploy.jar, javaws.jar, jfxrt.jar, plugin.jar JAR files.
3. I modified the SampleViev.createPartControl(Composite parent) method to look like this:
	public void createPartControl(Composite parent) {
	         Composite composite = new Composite(parent, SWT.EMBEDDED);
	         FXCanvas fxPanel = new FXCanvas(composite.getShell(), SWT.NONE);  //<====== EXCEPTION
	         Group group = new Group();
	         Scene scene = new Scene(group);
	         Button button = new Button("JFX Button");
	         group.getChildren().add(button);
	         fxPanel.setScene(scene);
        }
But now I'm getting an exception
java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Canvas
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:601)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478)
	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
	at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	at graphicalview2.views.SampleView.createPartControl(SampleView.java:101)
Could you please advise how to solve this problem?
Also am I going the right way? Is this the proper way to have JavaFX in eclipse views and editors?

BTW I also tried to add the four JAR files mentioned above to the Classpath on the Runtime tab of the
plugin.xml, but then I got the following exception. Could you please explain what is the reason for getting this exception?
java.lang.UnsatisfiedLinkError: Invalid URL for class: bundleresource://497.fwk6586390:2/com/sun/glass/utils/NativeLibLoader.class
	at com.sun.glass.utils.NativeLibLoader.loadLibraryFullPath(Unknown Source)
	at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(Unknown Source)
	at com.sun.glass.utils.NativeLibLoader.loadLibrary(Unknown Source)
	at com.sun.glass.ui.Application$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.glass.ui.Application.loadNativeLibrary(Unknown Source)
	at com.sun.glass.ui.win.WinApplication.<clinit>(Unknown Source)
	at com.sun.glass.ui.win.WinPlatformFactory.createApplication(Unknown Source)
	at com.sun.glass.ui.win.WinPlatformFactory.createApplication(Unknown Source)
	at com.sun.glass.ui.Application.Run(Unknown Source)
	at com.sun.javafx.tk.quantum.QuantumToolkit.startup(Unknown Source)
	at com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
	at javafx.embed.swt.FXCanvas.initFx(Unknown Source)
	at javafx.embed.swt.FXCanvas.<init>(Unknown Source)
	at graphicalview2.views.SampleView.createPartControl(SampleView.java:101)
Thanks,
Attila
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on May 18 2012
Added on Jan 20 2012
14 comments
2,400 views