2011-01-05 2 views
1

Eclipse RCP 응용 프로그램을 구축 중입니다. 뷰 중 하나에 비디오 피드를 포함시키고 싶습니다. 자바 미디어 프레임 워크를 사용하여 비디오 피드를 제작하고 있습니다. 네, 저의 직업은 저를 매저 키스트가되도록 요구합니다.비디오 스윙 JPanel 내 SWT보기

독립 실행 형 스윙 응용 프로그램으로 비디오 코드를 실행하면 비디오 피드 패널 (Swing JPanel)이 올바른 320 x 240 픽셀 크기로 표시됩니다. Eclipse RCP에서 SWT_AWT 클래스를 사용하여 동일한 코드를 실행하면 비디오 피드 패널이 80 x 60으로 줄어 듭니다.

Swing 비디오 피드 패널에서 setPreferredSizesetMinimumSize을 시도했습니다. 아무것도 바뀌지 않습니다.

SWT 합성물에 setBoundssetSize을 사용해 보았습니다. 아무것도 바뀌지 않습니다.

Swing 비디오 피드를 SWT보기에 삽입 한 사람이 있습니까?

누군가 SWT보기에 Swing 구성 요소를 포함하고 Swing 구성 요소의 크기를 지정 했습니까?

답변

0

필자는 SWT를보다 합리적인 크기의 비디오 피드 제작에 "속일 수있는 방법"을 마침내 알아 냈습니다.

올바른 크기의 JPG 이미지를 표시 한 다음 이미지를 AWT/Swing 코드로 오버레이했습니다.

 Composite videoComposite = new Composite(panel, 
       SWT.EMBEDDED | SWT.BORDER | SWT.NO_BACKGROUND); 
     videoComposite.setLayout(new FillLayout()); 
     videoComposite.setLayoutData(new GridData(
       SWT.CENTER, SWT.CENTER, true, true, 1, 1)); 

     CLabel videoImage = new CLabel(videoComposite, SWT.SHADOW_IN); 
     videoImage.setImage(dummyVideo); 

     final Frame frame = SWT_AWT.new_Frame(videoComposite); 

     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       JApplet applet = new JApplet(); 
       applet.setFocusCycleRoot(false); 
       applet.add(rabidPhoto.getVideoPanel(false)); 
       frame.add(applet); 
       frame.pack(); 
       frame.setVisible(true); 
      } 
     }); 

우선은 SWT 컴포지트를 정의 :

저는 여기에 사용되는 코드입니다.

다음으로, 컴포지트를 채우기 위해 SWT CLabel을 정의했습니다. SWT 뷰의 나머지 부분에서 CLabels를 사용하기 때문에 CLabel을 사용했습니다. dummyVideo은 내가 만든 JPG입니다. JPG는 240 x 180 픽셀입니다.

그런 다음 AWT 프레임을 정의하고 Swing 비디오 패널로 채 웠습니다. 먼저 JApplet을 정의하는 것은 이클립스 웹 사이트에서 얻은 팁이다.

JPG를 사용하는 것은 프로그램 코드에서 마술 숫자를 필드로 사용하는 것과 같습니다. 그러나 적어도 JPG 트릭은 효과가있었습니다.