import java.awt.Dimension;
import java.awt.Frame;
import javax.swing.JRootPane;
import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import com.github.sarxos.webcam.Webcam;
import com.github.sarxos.webcam.WebcamPanel;
import com.github.sarxos.webcam.WebcamResolution;
/**
* Example of how WebcamPanel can be used in SWT using SWT_AWT bridge.
*
* @author Dimitrios Chondrokoukis
*/
public class WebcamPanelShell extends Shell {
private Webcam webcam;
private WebcamPanel panel;
/**
* Create the shell.
*
* @param display
*/
public WebcamPanelShell(Display display) {
super(display, SWT.SHELL_TRIM);
Dimension size = WebcamResolution.QVGA.getSize();
setLayout(new FillLayout(SWT.HORIZONTAL));
setText("WebcamPanel in SWT Application");
setSize(size.width, size.height);
Composite composite = new Composite(this, SWT.EMBEDDED);
Frame frame = SWT_AWT.new_Frame(composite);
JRootPane root = new JRootPane();
frame.add(root);
webcam = Webcam.getDefault();
webcam.setViewSize(size);
panel = new WebcamPanel(webcam, size, false);
panel.setFPSDisplayed(true);
root.getContentPane().add(panel);
panel.start();
}
@Override
protected void checkSubclass() {
// disable the check that prevents subclassing of SWT components
}
}