1

EclipseRCPアプリケーションを構築しています。ビューの1つにビデオフィードを埋め込みたい。私はJavaMediaFrameworkを使用してビデオフィードを作成しています。はい、私の仕事は私がマゾヒストである必要があります。

ビデオコードをスタンドアロンのSwingアプリケーションとして実行すると、ビデオフィードパネル(Swing JPanel)が正しい320x240ピクセルサイズで表示されます。SWT_AWTクラスを使用してEclipseRCPで同じコードを実行すると、ビデオフィードパネルが80x60に縮小されます。

私はSwingビデオフィードパネルで試しsetPreferredSizeてみました。setMinimumSize何も変わりません。

私はSWTコンポジットを試しsetBoundsてみました。setSize何も変わりません。

SWTビューにSwingビデオフィードを埋め込んだ人はいますか?

SWTビューにSwingコンポーネントを埋め込み、Swingコンポーネントのサイズを指定した人はいますか?

4

1 に答える 1

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 Composite を定義しました。

次に、コンポジットを埋める SWT CLabel を定義しました。CLabel を使用したのは、SWT ビューの残りの部分で CLabels を使用しているためです。 dummyVideo私が作成したJPGです。JPG は 240 x 180 ピクセルです。

次に、AWT フレームを定義し、Swing ビデオ パネルで埋めました。最初に JApplet を定義するというのは、私が Eclipse の Web サイトから得たヒントです。

JPG を使用することは、フィールドとして定義するのではなく、プログラム コードでマジック ナンバーを使用するようなものです。しかし、少なくとも JPG のトリックは機能しました。

于 2011-01-06T15:03:28.177 に答える