문제가 생겼습니다. 애플리케이션에 JMF-Videoplayer가 있고 비디오를 계속 그려 넣고 싶습니다. 내가 가진 문제점은 Layer.Modal_Layer (인덱스 300)에서 VideoPlayer-Control을 Layer.Content_Layer (인덱스 0)에 추가하고 JPanel (setOpaque (false))을 추가하는 JLayeredPane을 사용한다는 것입니다.Java : JMF Lightweight_Rendered Player에서 선 그리기
JPanel을 추가 할 때 불투명하지 않지만 그려진 선은 보이지만 비디오는 보이지 않습니다. 이전에 JPanel을 추가 한 경우 (레이어의 인덱스를 변경하지 않은 경우) 비디오 컨트롤을 추가하면 비디오가 표시되지만 그려지는 선은 표시되지 않습니다.
누군가가 왜 이것이 작동하지 않으며 어떻게 작동하게 할 수 있는지에 대해 생각해 보셨습니까?
비디오 컨트롤 구성 요소에 ActionListener를 추가하고 이미지 변경 사항을 만회하기 위해이 이미지를 가져 와서 JPanel에서 배경으로 페인트하는 방법에 대해 생각했지만 귀중한 시간이 소요될 것이라고 사과합니다.
내 코드는 다음과 같습니다
Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, true);
mediaPlayer = Manager.createRealizedPlayer(url);
this.videoPane = new JLayeredPane();
this.videoPane.setLayout(new BorderLayout());
// get the components for the video and the playback controls
this.video = mediaPlayer.getVisualComponent();
this.controls = mediaPlayer.getControlPanelComponent();
this.drawPanel = new JLabel();
this.drawPanel.setSize(video.getWidth(), video.getHeight());
this.drawPanel.setOpaque(false);
if (video != null)
this.videoPane.add(video, BorderLayout.CENTER, JLayeredPane.FRAME_CONTENT_LAYER);
if (controls != null)
this.videoPlayerPanel.add(controls, BorderLayout.SOUTH);
this.videoPane.add(drawPanel, BorderLayout.CENTER, JLayeredPane.MODAL_LAYER);
this.videoPlayerPanel.add(videoPane, BorderLayout.CENTER);
videoPlayerPanel은 또한 당신이 볼 수있는 ...의 JLayeredPane를 포함하는 JPanel의입니다.
편집 : 나는 그것으로 몇 가지 조사를 넣고
mediaPlayer.getVisualComponent();
이 java.awt.Component의 이러한 구성 요소는 불투명도 지원하지 않습니다 반환 발견 자 - 어쩌면 그게 내가 볼 않거나 할 수없는 이유가의를 drawPanel을 참조하십시오.
현재 저는 비디오 컴포넌트를 사용자 정의 된 패널에 추가하여 직접 그려서 모든 라인을 그리는 페인트 메소드를 재정의하려고합니다. 다른 아이디어가 있습니까?