Java 将网络摄像头面板添加到现有jPanel 我使用NETBeBes,我用JPAND在它中间做了基本布局。现在我想在这个jPanel中添加网络摄像头面板
下面是如何从网络摄像头获取帧并在新窗口中显示的示例。很好用Java 将网络摄像头面板添加到现有jPanel 我使用NETBeBes,我用JPAND在它中间做了基本布局。现在我想在这个jPanel中添加网络摄像头面板,java,netbeans,jpanel,webcam,Java,Netbeans,Jpanel,Webcam,下面是如何从网络摄像头获取帧并在新窗口中显示的示例。很好用 Webcam webcam = Webcam.getDefault(); webcam.setViewSize(WebcamResolution.VGA.getSize()); WebcamPanel panel = new WebcamPanel(webcam); panel.setFPSDisplayed(true); panel.setDisplayDebugInfo(true);
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组件之后。当我添加示例时,它运行良好,但随后我的主布局被加载,网络摄像头屏幕显示在另一个窗口中。我想把它放在同一个窗口
我看过其他关于向jPanel添加图像的主题,但它不适用于从网络摄像头捕获电影
谢谢你的帮助
但当我试图在我现有的jPanel中显示它时,它不起作用
将组件添加到可见GUI时,基本代码为:
panel.add(...);
panel.revalidate(); // invoke the layout manager
panel.repaint(); // paint components
创建时,所有组件的默认大小均为(0,0),因此无需绘制任何内容。你需要调用布局管理器,所以组件被赋予了一个大小/位置。 < P>我改变了一点应用程序,现在在主窗口的中间,JTabbedPane和我找到了解决问题的方法。我没有使用NetBeans窗口设计器制作选项卡,而是使用代码制作 我在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 designer,那么它应该可以工作。我之前尝试过,但它没有做任何更改。网络摄像头屏幕在jPanel中仍然不可见。我甚至在按钮中添加了jPanel.revalidate()和jPanel.repaint(),以查看在应用程序启动时这样做是否有问题。