我正在使用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
也许对您的对话框也可以。

08-05 12:11