Eclipse Mars won't auto import JavaFX

2019-05-08 20:48发布

So, for every freaking time I want to use JavaFX 8 component, I have to google the exact name of the package, and manually type

 import packageName;

I'll put in more detail.

Let's say I want to create a StackPane

 StackPane stackPane = new StackPane(new ImageView(this.getClass().getResource("/images/about_icon.png").toString()));
 stackPane.setAlignment(Pos.CENTER);

Several classes there. When I use ctrl + o (cmd + o in Mac), then it should import the required package.

But it doesn't.

In fact, I have to google the exact name of StackPane. So, I googled it, I found it that it's under javafx.scene.layout.StackPane

So, I do import javafx.scene.layout.StackPane;

StackPane is fixed.

Now Eclipse is complaining about ImageView and I'm repeating the above same steps for ImageView.

And so on.

How can this be improved?

I'm using Eclipse Mars. Jdk 8. Mac OS X El-Capitan.

3条回答
姐就是有狂的资本
2楼-- · 2019-05-08 21:38

You need to install e(fx)clipse in order to have JavaFX development tooling support.

For this

  1. Open Help -> Install New Software
  2. Select the Software Site for Mars http://download.eclipse.org/releases/mars
  3. Disable Group items by category (unfortunately the e(fx)clipse team forgot to add a category)
  4. Filter for e(fx)
  5. Select e(fx)clipse - IDE
  6. Next
  7. Next
  8. Accept the license
  9. Finish

enter image description here After that you need to restart Eclipse and should have proper JavaFX support.

查看更多
欢心
3楼-- · 2019-05-08 21:41

On a clean installation of the latest version of Eclipse for Java Developers (Mars.1 release 4.5.1), I was able to reproduce this (more or less).

I fixed it by setting the access restrictions on the JRE system library.

From your Project properties, choose "Java Build Path", select the "Libraries" tab, and expand the JRE System Library:

enter image description here

The first entry in that list is "Access Rules". Select that and press "Edit", then press "Add":

For "Resolution", choose "Accessible", and for "Rule Pattern", enter "javafx/**".

enter image description here

Hit "OK" until all the dialogs are gone. Your CMD-SHIFT-O options should now be able to find javafx packages.

查看更多
叛逆
4楼-- · 2019-05-08 21:43

After having learnt my lesson of the day - javafx is not standard java! - I was still curious why I didn't experience any problems with the imports of javafx.*

Actually, I can reproduce the issue in Mars on Win7: all I had to do was to use the public jre as system library of the project. In my environment, I normally use the jdk as system library which doesn't seem to have the problem.

So for Windows, a simple solution (aka: not requiring the installation of additional tooling nor tweaking access permissions on the project level) is to use a java system library backed by a jdk.

查看更多
登录 后发表回答