Olá,
não mostra o grid na tela ProdutoCategoriaFrame, a idéia era colocar o scroll no grid.
se puderem me ajudar...
Abraço.
package br.com.alura.jdbc.view;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import br.com.alura.jdbc.controller.CategoriaController;
import br.com.alura.jdbc.controller.ProdutoController;
import br.com.alura.jdbc.modelo.Categoria;
import br.com.alura.jdbc.modelo.Produto;
public class ProdutoCategoriaFrame extends JFrame {
private static final long serialVersionUID = 1L;
private JLabel labelNome, labelDescricao, labelCategoria;
private JTextField textoNome, textoDescricao;
private JComboBox<Categoria> comboCategoria;
private JButton botaoSalvar, botaoEditar, botaoLimpar, botaoApagar, botaoListar;
private JTable tabela;
private DefaultTableModel modelo;
private ProdutoController produtoController;
private CategoriaController categoriaController;
public ProdutoCategoriaFrame() throws ClassNotFoundException, SQLException {
super("Produtos");
Container container = getContentPane();
setLayout(null);
this.categoriaController = new CategoriaController();
this.produtoController = new ProdutoController();
labelNome = new JLabel("Nome do Produto");
labelDescricao = new JLabel("Descrição do Produto");
labelCategoria = new JLabel("Categoria do Produto");
labelNome.setBounds(10, 10, 240, 15);
labelDescricao.setBounds(10, 50, 240, 15);
labelCategoria.setBounds(10, 90, 240, 15);
labelNome.setForeground(Color.BLACK);
labelDescricao.setForeground(Color.BLACK);
labelCategoria.setForeground(Color.BLACK);
container.add(labelNome);
container.add(labelDescricao);
container.add(labelCategoria);
textoNome = new JTextField();
textoDescricao = new JTextField();
comboCategoria = new JComboBox<Categoria>();
comboCategoria.addItem(new Categoria(0, "Selecione"));
List<Categoria> categorias = this.listarCategoria();
for (Categoria categoria : categorias) {
comboCategoria.addItem(categoria);
}
textoNome.setBounds(10, 25, 265, 20);
textoDescricao.setBounds(10, 65, 265, 20);
comboCategoria.setBounds(10, 105, 265, 20);
container.add(textoNome);
container.add(textoDescricao);
container.add(comboCategoria);
botaoSalvar = new JButton("Salvar");
botaoLimpar = new JButton("Limpar");
botaoSalvar.setBounds(10, 145, 80, 20);
botaoLimpar.setBounds(100, 145, 80, 20);
container.add(botaoSalvar);
container.add(botaoLimpar);
// criando um jtable e ajustando o modelo
tabela = new JTable();
//criando o modelo de tabela
modelo = (DefaultTableModel) tabela.getModel();
// criando campos com seus titulos
modelo.addColumn("ID do Produto");
modelo.addColumn("Nome do Produto");
modelo.addColumn("Descrição do Produto");
modelo.addColumn("Categoria do Produto");
// criando a barra de rolagem e adcionando a tabela(jtable)
JScrollPane rolagem = new JScrollPane(tabela);
preencherTabela();
// x, y, width, height
tabela.setBounds(10, 185, 760, 300);
rolagem.add(tabela);
container.add(getContentPane().add(rolagem));
botaoApagar = new JButton("Excluir");
botaoEditar = new JButton("Alterar");
botaoListar = new JButton("Listar");
botaoApagar.setBounds(10, 500, 80, 20);
botaoEditar.setBounds(100, 500, 80, 20);
botaoListar.setBounds(190, 500, 80, 20);
container.add(botaoApagar);
container.add(botaoEditar);
container.add(botaoListar);
setSize(800, 600);
setVisible(true);
setLocationRelativeTo(null);
}
private void preencherTabela() {
List<Produto> produtos = listarProduto();
try {
for (Produto produto : produtos) {
modelo.addRow(new Object[] { produto.getId(), produto.getNome(), produto.getDescricao(), produto.getCategoriaId() });
}
} catch (Exception e) {
throw e;
}
}
}