2016-09-23 6 views
0

私はjavaFxを使ってビデオを再生しようとしています。私は親の正しいサイズにビデオを収める方法がわかりません。ウィンドウの最大化ボタンをクリックすると、ビデオはビューの左隅に移動します。応答性にするにはどうすればいいですか?私はそれを可能にするために良いアイデアを与えてください。javafxで親のサイズにビデオを伸ばす方法

public class ServerController{ 

    @FXML 
     private BorderPane mainlayout; 

    public void loadVideo(){ 
      String workingDir = System.getProperty("user.dir"); 
      final File f = new File(workingDir,"/src/main/resources/video/video.mp4"); 
      final Media m = new Media(f.toURI().toString()); 
      final MediaPlayer player = new MediaPlayer(m); 
      final MediaView view = new MediaView(player); 
      final DoubleProperty width = view.fitWidthProperty(); 
      final DoubleProperty height = view.fitHeightProperty(); 
      width.bind(Bindings.selectDouble(view.sceneProperty(), "width")); 
      height.bind(Bindings.selectDouble(view.sceneProperty(), "height")); 
      view.setPreserveRatio(true); 
      mainlayout.getChildren().add(view);; 
      player.play(); 

      } 
} 

ビデオビューを設定するには、loadVideo()メソッドを呼び出します。コードの残りの部分は、簡潔にするために除外されています。

FXMLページ

<?xml version="1.0" encoding="UTF-8"?> 
<?import java.lang.*?> 
<?import javafx.scene.layout.*?> 

<BorderPane fx:id="mainlayout" minHeight="720.0" minWidth="1280.0" styleClass="welcome-border-pane1" stylesheets="@../css/fextile.css" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1"> 
</BorderPane> 

答えて

0

使用これはあなたのParentのサイズが変更またはStageされるたびに、それはすべて

MediaView.getParent().layoutBoundsProperty().addListener(new ChangeListener<Bounds>() { 
     @Override 
     public void changed(ObservableValue<? extends Bounds> observable, Bounds oldValue, Bounds newValue) { 
      mediaView.setFitHeight(newValue.getHeight()); 
      mediaView.setFitWidth(newValue.getWidth()); 
     } 
    }); 

の世話をする、それはあなたのMediaViewがそれに応じて

を調整します Maximisedです
関連する問題