我正在编写一个控制教育竞赛并在扩展屏幕上显示问题和媒体的应用程序,每当我需要显示分数时,单击按钮,就会创建一个新的 JFrame 并使用 VLCJ 播放视频,并在另一个按钮上单击,该 JFrame 应该可以继续竞争。经过一番谷歌搜索并在这里提出问题后,我想出了这段代码,以便能够在视频顶部显示 JLabels:
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()
and处理分数 JFrame 之后scoresFrame.dispose()
,带有标签的 JWindow 仍然出现在问题的顶部。如果我想重新显示分数,JWindow 根本不会显示在视频顶部。
问题的一些图片:
处理 scoreFrame 并返回主框架后(显示问题的地方)
那么我在这里想念什么?
任何帮助表示赞赏。提前致谢。