Pergunta

Estou construindo um aplicativo RCP Eclipse. Quero incorporar um feed de vídeo em uma das visualizações. Estou usando a estrutura de mídia Java para criar o feed de vídeo. Sim, meu trabalho exige que eu seja masoquista.

Quando eu executo meu código de vídeo como um aplicativo de balanço independente, o painel de feed de vídeo (um balanço JPanel) Exibe no tamanho correto de 320 x 240 pixels. Quando executo o mesmo código no meu Eclipse RCP usando a classe swt_awt, o painel de feed de vídeo é reduzido para 80 x 60.

eu tentei setPreferredSize e setMinimumSize no painel de feed de vídeo swing. Nada muda.

eu tentei setBounds e setSize no composto SWT. Nada muda.

Alguém incorporou um feed de vídeo swing em uma visualização SWT?

Alguém incorporou um componente de giro em uma exibição SWT e especificou o tamanho do componente de balanço?

Foi útil?

Solução

Finalmente descobri como eu poderia "enganar" o SWT para produzir um feed de vídeo de um tamanho mais razoável.

Eu exibi uma imagem JPG do tamanho correto e, em seguida, sobrepusei a imagem com o código AWT/Swing.

Aqui está o código que usei:

        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);
            }
        });

Primeiro, eu defini o composto SWT.

Em seguida, defini um clabel SWT para preencher o composto. Eu usei um clabel porque uso clabels durante o restante da visualização do SWT. dummyVideo é um JPG que eu criei. O JPG é de 240 x 180 pixels.

Em seguida, eu defini o quadro AWT e o preenchi com o painel de vídeo swing. Definir um Japplet primeiro é uma dica que eu peguei no site Eclipse.

Usar o JPG é como usar números mágicos no código do programa, em vez de defini -los como campos. Mas pelo menos o truque JPG funcionou.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top