2015-08-30 88 views
0

我正在處理我的代碼,該代碼將通過使用網絡攝像頭解碼QR碼。我看到一個與此相關的項目,我使用它。我在https://github.com/sarxos/webcam-capture/tree/master/webcam-capture-examples/webcam-capture-qrcode看到它Java使用JFrame在JPanel內部添加組件表單

所以,我創建了一個JFrame窗體,然後我拖入窗體中心的JPanel。我想讓攝像頭顯示在居中的JPanel內部。事情是這樣的:

http://i.imgur.com/MqsrxdM.png

我用下面這段代碼,但給了我一個錯誤的佈局。下面是截圖:

http://i.imgur.com/udBCQJ8.png

public class main extends javax.swing.JFrame { 

    private Webcam webcam = null; 
    private WebcamPanel panel = null; 
    private JTextArea textarea = null; 

    public main() { 
     initComponents(); 

     Dimension size = WebcamResolution.QVGA.getSize(); 
     webcam = Webcam.getWebcams().get(0); 
    webcam.setViewSize(size); 

     WebcamPanel lab1 = new WebcamPanel(webcam); 
     setLayout(new FlowLayout()); 
     add(lab1 = new WebcamPanel(webcam)); 
    } 
} 

回答

0

一個FlowLayout中一行顯示的標籤從左至右。

我想讓網絡攝像頭在居中的JPanel內部顯示。

到中心面板上的部件的最簡單方法是使用的GridBagLayout:

JPanel panel = new JPanel(new GridBagLayout()); 
panel.add(someComponent, new GridBagConstraints()); 

查閱「someComponent」將被水平地和垂直地提供給面板的空間中心。