我正在使用vlcj
在应用程序中显示带有OutOfProcessMediaPlayerComponent
的视频。为此,我将视频画布添加到未修饰的JDialog
的内容窗格中。可以按预期工作,但是当我将对话框的背景色设置为透明时,视频画布显示为空白,视频不再起作用。该行为是可重现的,并使用以下代码完成:
[...]
JPanel contentPane = new JPanel(new BorderLayout());
JDialog videoPopup = new JDialog(owner);
videoPopup.setUndecorated(true);
videoPopup.setType(Window.Type.NORMAL);
videoPopup.setModalityType( Dialog.ModalityType.MODELESS);
videoPopup.setContentPane(contentPane);
contentPane.setOpaque(false);
contentPane.add(videoCanvas, BorderLayout.CENTER);
videoPopup.setBackground(new Color(0,0,0,0)); // This line destroys the video playback function
我想用包含视频面板和其他内容的透明背景创建弹出窗口,为什么将背景设置为透明时视频播放会中断?
最佳答案
在我的一个获取透明窗口的软件中,我使用
float opacity = 0.5f; // between 0.0f and 1.0f
myFrame.setOpacity(opacity);
请注意,我框架(内容窗格)上的背景是Color.BLACK
也许对您的对话框也可以。