透明的JWindow卡在一切的前面,无法处理

时间:2016-03-27 13:12:06

标签: java swing jframe vlcj jwindow

我正在编写一个控制教育竞赛的应用程序,并在扩展屏幕上显示问题和媒体,每当我需要显示分数时,按钮点击,创建一个新的JFrame并播放视频使用VLCJ,并在另一个按钮点击,JFrame应该被处理继续比赛..在谷歌搜索并在这里问一个问题后,我想出了这个代码,以便能够在视频上显示JLabel:

mediaPlayerComponent = new EmbeddedMediaPlayerComponent() {

            private static final long serialVersionUID = 1882423084923822679L;

                @Override
                protected Window onGetOverlay() {

                    final JWindow transparentWindow = new JWindow();

                    transparentWindow.setOpacity(1.0f);
                    transparentWindow.setBackground(new Color(1.0f, 1.0f, 1.0f, 0.0f));
                    transparentWindow.getContentPane().setLayout(null);

                    int x = height/7;
                    for (int i = 0 ; i < numberOfTeams ; i++) {

                        scores[i][0] = new JLabel(scoresArray[i][0]);
                        scores[i][0].setOpaque(false);
                        scores[i][0].setBounds(width/2+width/80, x, width/5, height/16);


                        scores[i][1] = new JLabel(scoresArray[i][1]);
                        scores[i][1].setOpaque(false);
                        scores[i][1].setHorizontalAlignment(SwingConstants.RIGHT);
                        scores[i][1].setBounds(width/2-width/5-width/80 , x, width/5, height/16);

                        transparentWindow.getContentPane().add(scores[i][0]);
                        transparentWindow.getContentPane().add(scores[i][1]);

                        x = x + height/16;
                    }
                    return transparentWindow;
            }
};

在第一次显示分数时效果非常好,在使用mediaplayer.stop()scoresFrame.dispose()处理分数JFrame后,带有标签的JWindow仍会出现在问题的顶部。如果我想重新显示分数,JWindow根本不会在视频上显示。

问题的一些照片:

正在显示分数: the scores are being displayed successfully

处理scoreFrame并返回主框架(显示问题)后

JWindow is not being disposed

那我在这里缺少什么?

任何帮助表示赞赏。 提前致谢。

0 个答案:

没有答案