public class Vendas { // aqui são os beans
private static int quantidade, SOMA_VENDAS;
private static String nome,data;
public Vendas(int Soma_vendas) {
Vendas.setSOMA_VENDAS(Soma_vendas);
}
public Vendas(String nome, int quantidade,String data){
Vendas.nome = nome;
Vendas.quantidade = quantidade;
Vendas.data = data;
}
public int getQuantidade() {
return quantidade;
}
public static void setQuantidade(int quantidade) {
Vendas.quantidade = quantidade;
}
public String getData() {
return data;
}
public static void setData(String data) {
Vendas.data = data;
}
public String getNome() {
return nome;
}
public static void setNome(String nome) {
Vendas.nome = nome;
}
public int getSOMA_VENDAS() {
return SOMA_VENDAS;
}
public static void setSOMA_VENDAS(int sOMA_VENDAS) {
SOMA_VENDAS = sOMA_VENDAS;
}
}
O frame:
public class Vendas_Escolha extends JFrame {
private static final long serialVersionUID = 1L;
protected static List<Vendas> vendas = new ArrayList<>();
private static int id = 1;
public static int getId() {
return id;
}
public void setId(int id) {
Vendas_Escolha.id = id;
}
public static void main(String[] args) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(info.getName())) { // Para mudar o Design da interface
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| javax.swing.UnsupportedLookAndFeelException ex) {
System.err.println(ex);
}
Vendas_Escolha tela = new Vendas_Escolha();
tela.setLocationRelativeTo(null);
tela.setVisible(true);
}
private class PalletCellRenderer implements TableCellRenderer {
private JLabel label = new JLabel();
@Override
public Component getTableCellRendererComponent(JTable table, Object conteudo, boolean selecionado,
boolean focado, int lin, int col) {
label.setText(String.valueOf(conteudo));
label.setOpaque(false);
switch (lin) {
case 0:
label.setHorizontalAlignment(SwingConstants.CENTER);
break;
case 1:
label.setHorizontalAlignment(SwingConstants.CENTER);
break;
case 2:
label.setHorizontalAlignment(SwingConstants.CENTER);
break;
}
return label;
}
}
public Vendas_Escolha() {
super("Vendas");
setResizable(false);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent arg0) {
verify();
}
});
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
setMinimumSize(new Dimension(390, 250));
Vendas_Escolha.vendas = carregarPallets();
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(12, 13, 330, 139);
JTable table_1 = new JTable(new Vendas_e_TableModel());
table_1.setRowSelectionAllowed(false);
table_1.setBounds(0, 0, 248, 154);
table_1.setDefaultRenderer(Object.class, new PalletCellRenderer());
table_1.getColumnModel().getColumn(0).setMaxWidth(100);
table_1.getColumnModel().getColumn(1).setMaxWidth(80);
table_1.getColumnModel().getColumn(2).setMaxWidth(150);
scrollPane.setViewportView(table_1);
JMenuBar menuBar = new JMenuBar();
JMenu mnRetornar = new JMenu("Retornar");
mnRetornar.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
verify();
}
});
menuBar.add(mnRetornar);
GroupLayout groupLayout = new GroupLayout(getContentPane());
groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup().addGap(10)
.addComponent(panel, GroupLayout.DEFAULT_SIZE, 304, Short.MAX_VALUE).addGap(10))
.addComponent(menuBar, GroupLayout.DEFAULT_SIZE, 534, Short.MAX_VALUE));
groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout
.createSequentialGroup()
.addComponent(menuBar, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(12).addComponent(panel, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(16)));
JMenu mnAddVenda = new JMenu("Add venda");
menuBar.add(mnAddVenda);
panel.setLayout(null);
panel.add(scrollPane);
getContentPane().setLayout(groupLayout);
}
public void verify() {
Estoque_Visualization.contador = 0;
Vendas_Escolha.this.dispose();
}
private List<Vendas> carregarPallets() {
List<Vendas> pallets = new ArrayList<>();
Teste_funcs.Vendas(getId(), pallets);
return pallets;
}
}
class Vendas_e_TableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
// a Jtable chama esse método pra saber quantas colunas ela tem
@Override
public int getColumnCount() {
return 3; // uma coluna pra ser o "cabeçalho" e mais uma coluna pra cada palet da lista
}
// a Jtable chama esse método pra saber quantas linhas ela tem
@Override
public int getRowCount() {
return Vendas_Escolha.vendas.size(); // uma linha pra cada atributo do pallet exceto o ID, que será o
// cabeçalho
}
@Override
public String getColumnName(int column) {
// TODO Auto-generated method stub
switch (column) {
case 0:
return "Nome";
case 1:
return "Quantidade";
case 2:
return "Data da Venda";
}
return super.getColumnName(column);
}
// a Jtable chama esse método pra saber o valor a ser renderizado na linha e
// coluna informados
@Override
public Object getValueAt(int lin, int col) {
switch (col) {
case 0:
return Vendas_Escolha.vendas.get(lin).getNome();
case 1:
return Vendas_Escolha.vendas.get(lin).getQuantidade();
case 2:
return Vendas_Escolha.vendas.get(lin).getData();
}
return null;
}
}
A função que entra em contato com o BD:
public static List<Vendas> Vendas(int id, List<Vendas> ListaVendas) {
String sql = "SELECT Cerveja.nome, Vendas.quantidade, Vendas.data_venda\r\n" +
"FROM Cerveja JOIN Vendas ON Vendas.chave = Cerveja.id WHERE Vendas.chave = ?;";
Connection conn = Conexao.getConnection();
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
ListaVendas.add(new Vendas(rs.getString("nome"), rs.getInt("quantidade"), rs.getString("data_venda")));
}
Conexao.Fechar_Conexao(conn, ps);
return ListaVendas;
} catch (SQLException e) {
e.printStackTrace();
}
JOptionPane.showMessageDialog(null, "Error", "", JOptionPane.ERROR_MESSAGE);
return null;
}