JavaFX - MediaView getFitWidth() Method



In JavaFX, the getFitWidth() method in the MediaView class is used to retrieve the width of the bounding box of the resized media. By default, this method returns 0.0 if the value of 'fitWidth' is not set.

If we want to adjust the width of a media in a 'MediaView' container, we can do so by setting the 'fitWidth' property. This property can be set using the 'setFitWidth()' method. If the value of 'fitWidth' is greater than 0, the media will be displayed at the specified width. If the value is less than or equal to 0, the media will be displayed at its natural width and we can retrieve this value using 'getFitWidth()' method.

Syntax

Following is the syntax of the 'getFitWidth()' method of 'MediaView' class −

public final double getFitWidth()

Parameters

This method doesn't takes any parameters.

Return value

This method returns a double value that represents the width of the bounding box.

Example 1

Following is a basic example demonstrating the getFitWidth() method of 'MediaView' class −

In this example, we create an application that displays the video on the VBox. Then we displays the label for the fitWidth using the 'getFitWidth()' method.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.geometry.Pos;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import java.io.File;

public class GetFitWidthEX extends Application {
   @Override
   public void start(Stage stage) {
      File mediaPath = new File("./audio_video/sampleTP.mp4");
      Media media = new Media(mediaPath.toURI().toString());
      MediaPlayer mediaPlayer = new MediaPlayer(media);
      
      // Create the MediaView and set fit width
      MediaView mediaView = new MediaView(mediaPlayer);
      mediaView.setFitWidth(530);

      // Create a VBox to hold the label and MediaView
      VBox root = new VBox();
      root.setAlignment(Pos.CENTER);
      Label fitWidthLabel = new Label("Fit width of the media: " + mediaView.getFitWidth());
      
      root.getChildren().addAll(mediaView, fitWidthLabel);    

      Scene scene = new Scene(root, 550, 280);
      stage.setScene(scene);
      stage.setTitle("Fit Width Example");
      stage.show();
      
      mediaPlayer.play();
   }   
   public static void main(String[] args) {
      launch(args);
   }
}

Output

Following is the output of the code −

getFitWidth1

Example 2

In this example, we use the 'getFitWidth()' method to retrieve the value of the 'fitWidth' without setting it.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.geometry.Pos;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import java.io.File;

public class GetFitWidthExample extends Application {
   @Override
   public void start(Stage stage) {
      File mediaPath = new File("./audio_video/sampleTP.mp4");
      Media media = new Media(mediaPath.toURI().toString());
      MediaPlayer mediaPlayer = new MediaPlayer(media);
      
      // Create the MediaView and set fit width
      MediaView mediaView = new MediaView(mediaPlayer);

      // Create a VBox to hold the label and MediaView
      VBox root = new VBox();
      root.setAlignment(Pos.CENTER);
      double fitWidth = mediaView.getFitWidth();
      System.out.println("Fit width of the media: " + fitWidth);
      
      root.getChildren().addAll(mediaView);    

      Scene scene = new Scene(root, 550, 280);
      stage.setScene(scene);
      stage.setTitle("Fit Width Example");
      stage.show();
      
      mediaPlayer.play();
   }   
   public static void main(String[] args) {
      launch(args);
   }
}

Output

Following is the output of the code, which displays the 'fitWidth' on the console.

Fit width of the media: 0.0
Advertisements