JavaFX - MediaView getFitWidth() 方法



在 JavaFX 中,`MediaView` 类中的 `getFitWidth()` 方法用于检索调整大小后的媒体边界框的宽度。默认情况下,如果未设置 'fitWidth' 属性,此方法将返回 0.0。

如果我们想调整 `MediaView` 容器中媒体的宽度,可以通过设置 'fitWidth' 属性来实现。此属性可以使用 `setFitWidth()` 方法设置。如果 'fitWidth' 的值大于 0,则媒体将以指定的宽度显示。如果该值小于或等于 0,则媒体将以其自然宽度显示,我们可以使用 `getFitWidth()` 方法检索此值。

语法

`MediaView` 类的 `getFitWidth()` 方法的语法如下:

public final double getFitWidth()

参数

此方法不接受任何参数。

返回值

此方法返回一个双精度值,表示边界框的宽度。

示例 1

以下是一个演示 `MediaView` 类 `getFitWidth()` 方法的基本示例:

在这个例子中,我们创建了一个在 VBox 上显示视频的应用程序。然后,我们使用 `getFitWidth()` 方法显示 fitWidth 的标签。

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);
   }
}

输出

以下是代码的输出:

getFitWidth1

示例 2

在这个例子中,我们使用 `getFitWidth()` 方法在不设置它的情况下检索 `fitWidth` 的值。

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);
   }
}

输出

以下是代码的输出,它在控制台中显示 `fitWidth`。

Fit width of the media: 0.0
广告
© . All rights reserved.