[英]Adding Webcam panel to existing jPanel
我正在使用NetBeans,并在其中部进行了jPanel的基本布局。 现在,我想在此jPanel中添加“网络摄像头”面板。
这是如何从网络摄像头获取帧并将其显示在新窗口中的示例。 一切正常。
Webcam webcam = Webcam.getDefault();
webcam.setViewSize(WebcamResolution.VGA.getSize());
WebcamPanel panel = new WebcamPanel(webcam);
panel.setFPSDisplayed(true);
panel.setDisplayDebugInfo(true);
panel.setImageSizeDisplayed(true);
panel.setMirrored(true);
JFrame window = new JFrame("Test webcam panel");
window.add(panel);
window.setResizable(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.pack();
window.setVisible(true);
但是,当我尝试在现有的jPanel中显示它时,它不起作用。 网络摄像头屏幕不可见。 这是我的代码:
Webcam webcam = Webcam.getDefault();
webcam.setViewSize(WebcamResolution.VGA.getSize());
WebcamPanel panel = new WebcamPanel(webcam);
panel.setFPSDisplayed(true);
panel.setDisplayDebugInfo(true);
panel.setImageSizeDisplayed(true);
panel.setMirrored(true);
jPanel5.add(panel);
jPanel5.setVisible(true);
我在主类构造函数中调用所有这些。 在其他netbeans componenst加载之后。 当我添加示例时,它运行良好,但是随后我的主布局已加载,并且摄像头屏幕显示在另一个窗口中。 我想在同一窗口中获取它。
我看到了其他有关向jPanel添加图像的主题,但不适用于从网络摄像头捕获电影。
感谢帮助。
但是,当我尝试在现有的jPanel中显示它时,它不起作用。
将组件添加到可见的GUI时,基本代码为:
panel.add(...);
panel.revalidate(); // invoke the layout manager
panel.repaint(); // paint components
创建时,所有组件的默认大小均为(0,0),因此无需绘制任何内容。 您需要调用布局管理器,以便为组件指定大小/位置。
我更改了一些应用程序,现在在主窗口中间是JTabbedPane,我找到了解决问题的方法。 我没有使用NetBeans窗口设计器来制作Tab,而是使用代码来制作。
我在Netbeans中制作了空的JTabbedPane,然后将其添加到代码中:
final JPanel jPanelCamera = new JPanel();
jTabbedPane1.addTab("Camera", jPanelCamera);
Webcam webcam = Webcam.getDefault();
webcam.setViewSize(WebcamResolution.VGA.getSize());
WebcamPanel webcamPanel = new WebcamPanel(webcam);
webcamPanel.setFPSDisplayed(true);
webcamPanel.setDisplayDebugInfo(true);
webcamPanel.setImageSizeDisplayed(true);
webcamPanel.setMirrored(true);
jPanelCamera.add(webcamPanel);
jPanelCamera.getParent().revalidate();
System.out.println("Camera OK");
我不知道为什么早些时候我使用NetBeans Designer制作组件时不起作用,但现在却很好。 我认为,如果有人将其添加到JTabbedPane中而不是添加到JPanel中,则还应该使用代码来创建此面板。 不与Netbeans设计人员合作,那么它应该可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.