Preciso de uma ajuda pra criar um layout para um aplicativo simples de captura de imagem.
O layout será mais ou menos como a imagem em anexo.
O problema é que não trabalhei ainda com Swing, pois desenvolvo Web. Não consigo dimensionar corretamente os panels, fica tudo fora de escala, etc…
O código abaixo mostra o que eu fiz até agora. Chegue a criar o layout mas não respeita as minhas vontades.
Se alguém puder dar uma força, agradeço muito.
public class CaptureVideo implements PropertyChangeListener {
private DSCapture camera;
private JFrame janelaPrincipal;
public CaptureVideo() {
DSFilterInfo [][] dsFilterInfo = DSCapture.queryDevices();
camera = new DSCapture(DSFiltergraph.DD7,
dsFilterInfo[0][0],
false,
DSFilterInfo.doNotRender(),
this);
JFrame janelaPrincipal = new JFrame("Captura de imagens");
JTextField txtCodigoDaVenda = new JTextField(8);
JLabel lblCodigoDaVenda = new JLabel("Código da venda: ");
JTextField txtFornecedor = new JTextField(20);
JLabel lblFornecedor = new JLabel("Fornecedor");
JTextField txtItem = new JTextField();
JLabel lblItem = new JLabel("N° item");
JTextField txtQtd = new JTextField();
JLabel lblQtd = new JLabel("Qtd");
JTextField txtDescricao = new JTextField();
JLabel lblDescricao = new JLabel("Descrição");
JButton btnNovaVenda = new JButton("Nova venda");
btnNovaVenda.setSize(new Dimension(15,10));
JButton btnNovoItem = new JButton("+");
JPanel painelInfo = new JPanel(new GridLayout(7,2));
painelInfo.add(lblCodigoDaVenda);
painelInfo.add(txtCodigoDaVenda);
painelInfo.add(lblFornecedor);
painelInfo.add(txtFornecedor);
painelInfo.add(lblItem);
painelInfo.add(txtItem);
painelInfo.add(lblQtd);
painelInfo.add(txtQtd);
painelInfo.add(lblDescricao);
painelInfo.add(txtDescricao);
JButton btnCapturar = new JButton("Capturar");
btnCapturar.setSize(new Dimension(100,100));
final JPanel painelFotos = new JPanel();
painelFotos.setSize(new Dimension(100,100));
btnCapturar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
BufferedImage image = camera.getImage();
JLabel lblImagem = new JLabel(new ImageIcon(image));
lblImagem.setSize(new Dimension(50, 50));
painelFotos.add(lblImagem);
}
});
janelaPrincipal.add(painelInfo, BorderLayout.NORTH);
janelaPrincipal.add(camera.asComponent(), BorderLayout.EAST);
janelaPrincipal.add(btnCapturar, BorderLayout.WEST);
janelaPrincipal.add(painelFotos, BorderLayout.SOUTH);
janelaPrincipal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janelaPrincipal.setSize(new Dimension(400,400));
janelaPrincipal.pack();
janelaPrincipal.setVisible(true);
}
public static void main(String[] args) {
CaptureVideo capture = new CaptureVideo();
}
Vlw.