MediaView JavaFX FXML 上的按钮
Button on MediaView JavaFX FXML
我将如何着手在我的 MediaView 组件上创建一个按钮,例如视频中心的播放按钮,它在单击时消失。我正在使用 FXML,所以如果你能用它给我一个答案,那就更好了。
您可以轻松地在媒体播放器上添加一个 Button
,将两者都放在 StackPane
上。
然后为该按钮添加一个方法,以便在单击该按钮时隐藏该按钮并开始播放视频。
我还会添加一种方法,在视频结束后再次显示按钮,让您重新开始。
这是 FXML:
<AnchorPane prefHeight="480.0" prefWidth="640.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
<children>
<StackPane>
<children>
<MediaView>
<mediaPlayer>
<MediaPlayer fx:id="mediaPlayer" autoPlay="false">
<media>
<Media source="http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv" />
</media>
</MediaPlayer>
</mediaPlayer>
</MediaView>
<Button fx:id="button" mnemonicParsing="false" onAction="#playAndHide" text="Play Video" />
</children>
</StackPane>
</children>
</AnchorPane>
这是 Controller
class:
@FXML private Button button;
@FXML private MediaPlayer mediaPlayer;
@Override
public void initialize(URL url, ResourceBundle rb) {
mediaPlayer.setOnEndOfMedia(()->button.setVisible(true));
}
@FXML
public void playAndHide(ActionEvent event){
button.setVisible(false);
mediaPlayer.seek(Duration.ZERO);
mediaPlayer.play();
}
我将如何着手在我的 MediaView 组件上创建一个按钮,例如视频中心的播放按钮,它在单击时消失。我正在使用 FXML,所以如果你能用它给我一个答案,那就更好了。
您可以轻松地在媒体播放器上添加一个 Button
,将两者都放在 StackPane
上。
然后为该按钮添加一个方法,以便在单击该按钮时隐藏该按钮并开始播放视频。
我还会添加一种方法,在视频结束后再次显示按钮,让您重新开始。
这是 FXML:
<AnchorPane prefHeight="480.0" prefWidth="640.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
<children>
<StackPane>
<children>
<MediaView>
<mediaPlayer>
<MediaPlayer fx:id="mediaPlayer" autoPlay="false">
<media>
<Media source="http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv" />
</media>
</MediaPlayer>
</mediaPlayer>
</MediaView>
<Button fx:id="button" mnemonicParsing="false" onAction="#playAndHide" text="Play Video" />
</children>
</StackPane>
</children>
</AnchorPane>
这是 Controller
class:
@FXML private Button button;
@FXML private MediaPlayer mediaPlayer;
@Override
public void initialize(URL url, ResourceBundle rb) {
mediaPlayer.setOnEndOfMedia(()->button.setVisible(true));
}
@FXML
public void playAndHide(ActionEvent event){
button.setVisible(false);
mediaPlayer.seek(Duration.ZERO);
mediaPlayer.play();
}