Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将网络摄像头面板添加到现有jPanel 我使用NETBeBes,我用JPAND在它中间做了基本布局。现在我想在这个jPanel中添加网络摄像头面板_Java_Netbeans_Jpanel_Webcam - Fatal编程技术网

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(),以查看在应用程序启动时这样做是否有问题。