JavaFX - Creating a Sphere



A sphere is a perfectly round geometrical object in a three-dimensional space that is the surface of a completely round shaped ball.

A sphere is defined as the set of points that are all at the same distance r from a given point in a 3D space. This distance r is the radius of the sphere and the given point is the centre of the sphere.

3d Sphere

Sphere in JavaFX

In JavaFX, a sphere is represented by a class named Sphere. This class belongs to the package javafx.scene.shape. By instantiating this class, you can create a sphere node in JavaFX.

This class has a property named radiusof double datatype. It represents the radius of a Sphere. To draw a Sphere, you need to set values to this property by passing it to the constructor of this class at the time of instantiation; Or, by using a setter method named setRadius().

Steps to Draw 3D Sphere

Follow the steps given below to Draw a Sphere (3D) in JavaFX.

Step 1: Creating a Sphere

Create a Sphere in JavaFX by instantiating the class named Sphere, which belongs to a package javafx.scene.shape. You can instantiate this class in the start() method as follows.

public class ClassName extends Application { 
  @Override     
   public void start(Stage primaryStage) throws Exception {
      //Creating an object of the class Sphere 
      Sphere sphere = new Sphere();   
   }
}

Step 2: Setting Properties to the Sphere

Set the radius of the Sphere using the method named setRadius() as shown below.

//Setting the radius of the Sphere 
sphere.setRadius(300.0);

Step 3: Creating a Group Object

Instantiate the Group class by passing sphere object as a parameter to its constructor, as shown below −

Group root = new Group(sphere);

Step 4: Launching an Application

Once the 3D object is created, launch the JavaFX application by following the steps below −

  • Instantiate the class named Scene by passing the Group object as a parameter value to its constructor. You can also pass dimensions of the application screen as optional parameters to the constructor.

  • Set the title to the stage using the setTitle() method of the Stage class.

  • Add a scene object to the stage using the setScene() method of the class named Stage.

  • Display the contents of the scene using the method named show().

  • Lastly, the application is launched with the help of the launch() method within the Application class.

Example

The following program shows how to generate a Sphere using JavaFX. Save this code in a file with the name SphereExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.shape.Sphere; 
         
public class SphereExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing a Sphere  
      Sphere sphere = new Sphere();  
      
      //Setting the properties of the Sphere 
      sphere.setRadius(50.0);   
       
      sphere.setTranslateX(200); 
      sphere.setTranslateY(150);      
       
      //Creating a Group object  
      Group root = new Group(sphere); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Drawing a Sphere - draw fill");
      
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compile and execute the saved java file from the command prompt using the following commands.

javac --module-path %PATH_TO_FX% --add-modules javafx.controls SphereExample.java 
java --module-path %PATH_TO_FX% --add-modules javafx.controls SphereExample 

Output

On executing, the above program generates a JavaFX window displaying a Sphere as shown below.

Drawing 3dSphere

Example

In the following program, we are applying some CSS in JavaFX by colouring the scene of JavaFX application. Save this code in a file with the name CSSSphereExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage;
import javafx.scene.paint.Color;
import javafx.scene.shape.Sphere; 
         
public class CSSSphereExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing a Sphere  
      Sphere sphere = new Sphere();  
      
      //Setting the properties of the Sphere 
      sphere.setRadius(50.0);   
       
      sphere.setTranslateX(100); 
      sphere.setTranslateY(150);      
       
      //Creating a Group object  
      Group root = new Group(sphere); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 300, 300);
      
	  scene.setFill(Color.ORANGE);	  
      
      //Setting title to the Stage 
      stage.setTitle("Drawing a Sphere");
      
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compile and execute the saved java file from the command prompt using the following commands.

javac --module-path %PATH_TO_FX% --add-modules javafx.controls CSSSphereExample.java 
java --module-path %PATH_TO_FX% --add-modules javafx.controls CSSSphereExample 

Output

On executing, the above program generates a JavaFX window displaying a Sphere as shown below.

Drawing 3dSphere
Advertisements