vlcj を直接使用してフルスクリーンを表示する場合は問題ありませんが、最初に固定サイズを設定し、後でオンザフライでフルスクリーンに設定すると、レンダリングが失われます。コード:
panel_canvas=new JPanel(new BorderLayout());
panel_canvas.add(windowsCanvas,BorderLayout.CENTER);
mediaPlayerFactory = new MediaPlayerFactory("--no-video-title-show");
mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer();
mediaPlayer.setVideoSurface(mediaPlayerFactory.newVideoSurface(windowsCanvas));
frame.setContentPane(panel_canvas);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setSize(600,500);
frame.setVisible(true);
しかし、「Enter」を押したときにプロセスを使用すると、フルスクリーンになり、失敗します
frame.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("released ENTER"), "RELEASED_ENTER");
frame.getRootPane().getActionMap().put("RELEASED_ENTER", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
if(!frame.isUndecorated()){
pres_size=frame.getSize();
prev_location=frame.getLocation();
frame.dispose();
frame.setUndecorated(true);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
}