사용자가 JMenu를 클릭 한 다음 JMenuItem (열린 비디오)을 클릭하면 JFrame에 비디오 플레이어가 임베드되어 JFileChooser가 팝업되고 헴을 묻습니다. 비디오를 선택하고 오른쪽에있는 JTextFile을 제거하고 왼쪽에 비디오를 설정합니다. 그 모든 작업을했는데 Canvas에 비디오를 넣는 방법을 모릅니다. 항상 오류가 발생하므로 삭제 된 상태이므로 쓰기 방법이 필요합니다. 모든 오류 라인 그래서 여기에 코드가 어떤 오류를 포기하지 않는 내가 2 클래스를 첫 번째 클래스 GUI와 두 번째 하나는 내가 여기에 하나를 작성할 수 있습니다 actionlistener 및 내 첨부 된 클래스에 쓸 무엇에 대해 나를 도울 수Canvas를 사용하여 비디오를 재생하는 방법
이것은 비디오 작업 클래스입니다
,451,515,/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package animeaid;
import java.awt.Canvas;
import java.awt.Color;
import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.player.MediaPlayerFactory;
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;
/**
*
* @author isslam
*/
public class VideoOpration {
public static Canvas c;
VideoOpration() {
MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
c = new Canvas();
c.setBackground(Color.black);
EmbeddedMediaPlayer mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer();
mediaPlayer.setVideoSurface(mediaPlayerFactory.newVideoSurface(c));
mediaPlayer.playMedia(GuiInterface.mediaPath);
}
}
JFileChoosear이
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package AnimeAid;
import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import javax.swing.*;
import javax.swing.table.*;
import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
/**
*
* @author isslam
*/
public class GuiInterface extends JFrame {
private final JTable table;
private final JTextField enterText;
private final JMenu jMenu1,jMenu2,jMenu3;
private final JMenuBar jMenuBar1;
private final JMenuItem itemNewSrt,itemOpenVideo;
private static JFileChooser ourFileSelector;
File ourFile;
public static String mediaPath="";
String vlcPath="C:\\Program Files\\VideoLAN\\VLC";
public GuiInterface(String title){
setSize(1024, 720);
setTitle(title);
setDefaultCloseOperation(GuiInterface.EXIT_ON_CLOSE);
String[] columnNames = {"#","Start","End","Translation column"};
Object[][] data = {
{"1", "00:00:01,600","00:00:04,080", "Mr Magnussen, please state your\n" +
"full name for the record."},
{"2", "00:00:04,080 ","00:00:07,040","Charles Augustus Magnussen."}};
enterText = new JTextField();
ourFileSelector = new JFileChooser();
jMenuBar1 = new JMenuBar();
jMenu1 = new JMenu("File");
jMenu2 = new JMenu("Video");
jMenu3 = new JMenu("Subtitle");
jMenuBar1.add(jMenu1);
jMenuBar1.add(jMenu2);
jMenuBar1.add(jMenu3);
itemNewSrt = new JMenuItem("this text only");
jMenu1.add(itemNewSrt);
itemOpenVideo = new JMenuItem("Open Video");
jMenu2.add(itemOpenVideo);
setJMenuBar(jMenuBar1);
table = new JTable(data, columnNames);
table.setFillsViewportHeight(true);
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
TableColumn columnA = table.getColumn("#");
columnA.setMinWidth(10);
columnA.setMaxWidth(20);
TableColumn columnB= table.getColumn("Start");
columnB.setMinWidth(80);
columnB.setMaxWidth(90);
TableColumn columnC= table.getColumn("End");
columnC.setMinWidth(80);
columnC.setMaxWidth(90);
JPanel textFiled = new JPanel(new GridBagLayout());
GridBagConstraints co = new GridBagConstraints();
co.fill = GridBagConstraints.HORIZONTAL;
co.gridx =0;
co.gridy =0;
co.weightx=0.5;
co.weighty=1;
co.gridheight=0;
co.gridwidth=0;
co.ipadx=900;
co.ipady=80;
co.anchor = GridBagConstraints.PAGE_START;
co.insets = new Insets(100, 0, 5, 0);
textFiled.add(enterText,co);
JPanel p = new JPanel();
p.add(VideoOpration.c);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane, BorderLayout.CENTER);
add(textFiled, BorderLayout.NORTH);
add(p, BorderLayout.WEST);
//Container cp = getContentPane();
//cp.add(videoCon);
itemOpenVideo.addActionListener(new MenuBarMethod());
}
public class MenuBarMethod implements ActionListener{
@Override
public void actionPerformed(ActionEvent a){
Object buttonPressed=a.getSource();
if(buttonPressed.equals(itemOpenVideo)){
ourFileSelector.setFileSelectionMode(JFileChooser.FILES_ONLY);
ourFileSelector.showSaveDialog(null);
ourFile = ourFileSelector.getSelectedFile();
mediaPath = ourFile.getAbsolutePath();
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), vlcPath);
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
}
}
}
}
* 1)은 항상/페이스트 오차 예외 출력 복사 "항상 오류 준다." 2) 더 빨리 도움을 받으려면 [MCVE] (http://stackoverflow.com/help/mcve)를 게시하십시오. - BTW - 정확한 철자를 위해서는 'VideoOperation'클래스 이름이 'VideoOperation'이어야합니다. –
이 코드에는 오류가 없습니다. 메인 프레임의 jpanel에 비디오를 넣는 방법을 모르겠습니다. –
@peeskillet이 코드를보실 수 있습니까? –