GeckStar
GeckStar

Reputation: 1156

Some javafx classes cannot be resolved in Eclipse using Java SE 8u25

I installed the Java SE 8u25 JDK (64 Bit) from Oracle, which should include JavaFX.

I'm using Win7 64 Bit, Eclipse Helios and included the jre in the classpath as shown here: enter image description here

I'm trying to replicate the code from this tutorial: http://docs.oracle.com/javase/8/javafx/get-started-tutorial/hello_world.htm

Eclipse shows me "The type javafx.scene.control.Control cannot be resolved. It is indirectly referenced from required .class files" when trying to use javafx.scene.control.Button.setText(String). A similar problem occurs when trying to create a StackPane object.

Here's the code so far:

package javaFX;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Button;
import javafx.stage.Stage;

public class HelloWorld extends Application {

@Override
public void start(Stage primaryStage) throws Exception {

    Button btn = new Button();
    btn.setText("Hello world!");
    btn.setOnAction(new EventHandler<ActionEvent>(){

        @Override
        public void handle(ActionEvent arg0) {
            System.out.println("Hello world!");
        }

    });

    StackPane root = new StackPane();

}
}

Tl;dr: Some JavaFX classes seem to be missing in Java SE 8u25 or I made a mistake in including the jre in the build path.

Upvotes: 5

Views: 50826

Answers (3)

user2922935
user2922935

Reputation: 439

Installing the latest JDK will help. Please see the two links: enter link description here enter link description here

Upvotes: 0

mythbu
mythbu

Reputation: 840

NOTE: I've seen that you are using Eclipse Helios. You could also download a latest version of Eclipse Luna. This will work also.


You could try e(fx)clipse which might be a useful IDE extension when developing FX apps with Eclipse. To do so follow these steps:

  1. Open Eclipse and go to Help > Install New Software and insert the URL http://download.eclipse.org/efxclipse/updates-released/1.1.0/site/ under "Work with:" and press enter
  2. Once the packages are loaded, select and install them both
  3. After a restart of Eclipse you can go to File > New > Other ... and select JavaFX > JavaFX Project
  4. There is one more step to do: add the jfxrt.jar to the classpath by going to the project properties and selecting "Add external JAR ..."
    • Windows: C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext
    • Mac OS: ./Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/jre/lib/ext/jfxrt.jar.
  5. Ready to make cute JavaFX GUIs!

Working example.

Notice: e(fx)clipse provides much more support for developing JavaFX applications. Feel free to take a look.

Upvotes: 16

Fevly Pallar
Fevly Pallar

Reputation: 3099

EDIT :

You haven't import the class for StackPane :

import javafx.scene.layout.StackPane;

Previous answer :

Basically you haven't import your javafx library , you can Add External JARs , and pointing out to jfxrt.jar, and it will work just fine.

In my path , jfxrt.jar is in :

C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext

There is a simple way,

Upvotes: 1

Related Questions