Я наконец-то понял, как можно «обмануть» SWT для создания видеопотока более разумного размера.
Я отобразил изображение JPG правильного размера, затем наложил его на AWT / Swingcode.
Вот код, который я использовал:
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 для заполнения составной части.Я использовал CLabel, потому что я использую CLabel в остальной части представления SWT.dummyVideo
- это JPG, который я создал.Размер JPG составляет 240 x 180 пикселей.
Затем я определил кадр AWT и заполнил его видеопанелью Swing.Сначала определить JApplet - это совет, который я взял с веб-сайта Eclipse.
Использование JPG похоже на использование магических чисел в программном коде, а не на их определение в качестве полей.Но по крайней мере трюк с JPG сработал.