教育競技会を制御し、拡張画面に質問とメディアを表示するアプリをコーディングしています。スコアを表示する必要があるたびに、ボタンをクリックすると、新しい 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()
と を使用してスコア JFrame を破棄した後、最初にスコアを表示すると驚くほどうまく機能scoresFrame.dispose()
し、そのラベルが付いた JWindow は引き続き質問の上に表示されます。スコアを再表示したい場合、JWindow はビデオの上にまったく表示されません。
問題のいくつかの写真:
ScoreFrame を破棄し、メイン フレーム (質問が表示されている場所) に戻った後
それで、私はここで何が欠けていますか??
どんな助けでも大歓迎です。前もって感謝します。