Main은 그대로 냅두고
Border Pane Center 위에 Pane(400, 400)
Pane 위에
MediaView - Code : fx:id - mediaView
Button - Code : On Action - fileOpen
Controller class 설정으로 마치고 코딩
package app;
import java.io.File;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.beans.binding.Bindings;
import javafx.beans.property.DoubleProperty;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.FileChooser;
import javafx.stage.FileChooser.ExtensionFilter;
public class MainController implements Initializable{
@FXML private MediaView mediaView;
Media media;
MediaPlayer player;
@Override
public void initialize(URL location, ResourceBundle resources) {
System.out.println("FXML 완");
}
public void fileOpen() {
// 파일 선택창
FileChooser fc = new FileChooser();
fc.setTitle("미디어 선택");
fc.setInitialDirectory(new File("C:/"));
// 확장자 필터링(선택 사항)
ExtensionFilter audioType = new ExtensionFilter("오디오", "*.mp3");
ExtensionFilter videoType = new ExtensionFilter("비디오", "*.mp4", "*.avi");
fc.getExtensionFilters().addAll(audioType, videoType);
// 띄우기
File selectedFile = fc.showOpenDialog(null); // 창위치 null은 최상단 좌측을 의미
// System.out.println(selectedFile.toString());
System.out.println(selectedFile.toURI().toString());
String path = selectedFile.toURI().toString();
// 미디어 생성 -> 플레이어 등록 -> 뷰에 등록
media = new Media(path);
player = new MediaPlayer(media);
mediaView.setMediaPlayer(player);
mediaView.setLayoutX(media.getWidth());
mediaView.setLayoutY(media.getHeight());
player.setAutoPlay(true);
// 크기 조정, 창의 크기에 따라서 영상 사이즈 변경
DoubleProperty width = mediaView.fitWidthProperty();
DoubleProperty height = mediaView.fitHeightProperty();
width.bind(Bindings.selectDouble(mediaView.sceneProperty(), "width"));
height.bind(Bindings.selectDouble(mediaView.sceneProperty(), "height"));
}
}
설명은 코드의 주석
'JavaFX > 01.Node 추가' 카테고리의 다른 글
| [JAVA FX]01-16.Popup 띄우기 (방법 1,2) (0) | 2018.09.12 |
|---|---|
| [JAVA FX]01-15.AudioPlayer (0) | 2018.09.12 |
| [JAVA FX]01-13.BarChart (0) | 2018.09.11 |
| [JAVA FX]01-12.Line Chart, Random (0) | 2018.09.11 |
| [JAVA FX]01-11.PieChart (0) | 2018.09.11 |