public static void main(String[] args) { UEyeCameraInfo[] uEyeCameraInfoArray = {new UEyeCameraInfo(), new UEyeCameraInfo()}; UEyeCameraList uEyeCameraList = new UEyeCameraList(uEyeCameraInfoArray); // write struct to native memory uEyeCameraList.write(); int result = UEyeCapturerLibrary.GetCameraNames(uEyeCameraList.getPointer()); System.out.println("GetCameraNames result: " + result); uEyeCameraList.read(); final IntByReference cameraHandle = new IntByReference(0); char[] windowName = null; for (int i = 0; i < uEyeCameraList.dwCount; i++) { UEyeCameraInfo ueye_CAMERA_INFO = uEyeCameraList.uci[i]; windowName = Native.toCharArray(ueye_CAMERA_INFO.getModelInfo()); System.out.println("WindowName returned: " + windowName); cameraHandle.setValue(ueye_CAMERA_INFO.dwCameraID); } uEyeCameraList.clear(); String settingsFile = "C:/Documents and Settings/Administrator/My Documents/uEye/1495LE3.90.ini"; result = UEyeCapturerLibrary.InitializeCamera(cameraHandle); System.out.println("initCamera result: " + result); System.out.println("Camera handle returned: " + cameraHandle.getValue()); IntByReference monitorId = new IntByReference(WindowManager.getDefaultMonitorId()); UEyeCapturerLibrary.OnWndShowCallback onWndShowCallback = new UEyeCapturerLibrary.OnWndShowCallback() { public void invoke(boolean visible) { System.out.println("Window visibility set to " + visible); } }; Frame frame = new Frame(String.valueOf(windowName)); Canvas canvas = new Canvas(); frame.add(canvas); frame.setIgnoreRepaint(true); frame.setBackground(Color.black); frame.setSize(1440, 900); frame.setVisible(true); frame.pack(); Pointer newPointer = Native.getComponentPointer(canvas); result = UEyeCapturerLibrary.StartRunning( cameraHandle, settingsFile, monitorId, onWndShowCallback, newPointer); try { Thread.sleep(5000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } result = UEyeCapturerLibrary.StopRunning(cameraHandle); frame.remove(canvas); frame.validate(); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } frame.add(canvas); frame.validate(); Pointer otherPointer = Native.getComponentPointer(canvas); assert (otherPointer.equals(newPointer)); result = UEyeCapturerLibrary.StartRunning( cameraHandle, settingsFile, monitorId, onWndShowCallback, otherPointer); try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(UEyeCapturerLibrary.Dispose(cameraHandle)); }