public class JFrameLocacao extends JFrame {
private JPanel contentPane;
private final JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
private JPanel listagem;
private JPanel cadastro;
private JLabel lblCodigoFilme;
private JTextField codigo_filme;
private JLabel codFuncionario;
private JTextField codigo_funcionario;
private JLabel codCliente;
private JTextField codigo_cliente;
private JLabel dtLocacao;
private JTextField dt_locacao;
private JComboBox cbFiltro;
private JComboBox cbCodigo;
private JLabel dtDevolucao;
private JTextField dt_devolucao;
private JTextField txtPesquisa;
private DefaultTableModel linha = new DefaultTableModel();
private JTable tabela;
private String SELECT_FILME = "SELECT codigo_filme FROM filmes";
private int codigoEditar = 0;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JFrameLocacao frame = new JFrameLocacao();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
* @throws ParseException
*/
public JFrameLocacao() throws ParseException {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 512, 563);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JPanel panel = new JPanel();
panel.setBounds(0, 0, 617, 390);
getContentPane().add(panel);
panel.setLayout(null);
tabbedPane.setBackground(Color.WHITE);
tabbedPane.setBounds(0, 0, 486, 514);
panel.add(tabbedPane);
cadastro = new JPanel();
cadastro.setBackground(Color.WHITE);
tabbedPane.addTab("Cadastro", null, cadastro, null);
cadastro.setLayout(null);
JLabel lblTitulo = new JLabel("Loca\u00E7\u00E3o de Filmes");
lblTitulo.setFont(new Font("Tahoma", Font.BOLD, 20));
lblTitulo.setBounds(163, 34, 200, 50);
cadastro.add(lblTitulo);
lblCodigoFilme = new JLabel("C\u00F3digo do Filme:");
lblCodigoFilme.setBounds(58, 143, 107, 26);
cadastro.add(lblCodigoFilme);
codigo_filme = new JTextField();
codigo_filme.setBounds(165, 146, 211, 20);
cadastro.add(codigo_filme);
codigo_filme.setColumns(10);
codFuncionario = new JLabel("C\u00F3digo do Funcion\u00E1rio:");
codFuncionario.setBounds(34, 184, 142, 26);
cadastro.add(codFuncionario);
codigo_funcionario = new JTextField();
codigo_funcionario.setColumns(10);
codigo_funcionario.setBounds(165, 187, 211, 20);
cadastro.add(codigo_funcionario);
codCliente = new JLabel("C\u00F3digo do Cliente:");
codCliente.setBounds(58, 225, 107, 26);
cadastro.add(codCliente);
preenche();
codigo_cliente = new JTextField();
codigo_cliente.setColumns(10);
codigo_cliente.setBounds(165, 228, 211, 20);
cadastro.add(codigo_cliente);
dtLocacao = new JLabel("Data de Loca\u00E7\u00E3o:");
dtLocacao.setBounds(58, 266, 107, 26);
cadastro.add(dtLocacao);
MaskFormatter frmdtLo = new MaskFormatter("##/##/####");
dt_locacao = new JFormattedTextField(frmdtLo);
dt_locacao.setColumns(10);
dt_locacao.setBounds(165, 269, 211, 20);
cadastro.add(dt_locacao);
dtDevolucao = new JLabel("Data de Devolu\u00E7\u00E3o:");
dtDevolucao.setBounds(41, 308, 135, 26);
cadastro.add(dtDevolucao);
MaskFormatter frmdtDe = new MaskFormatter("##/##/####");
dt_devolucao = new JFormattedTextField(frmdtDe);
dt_devolucao.setColumns(10);
dt_devolucao.setBounds(165, 311, 211, 20);
cadastro.add(dt_devolucao);
JButton btnSalvar = new JButton("Salvar");
btnSalvar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
salvar();
popularTabela(linha, null, -1);
}
});
btnSalvar.setBounds(139, 380, 89, 23);
cadastro.add(btnSalvar);
JButton btnLimpar = new JButton("Limpar");
btnLimpar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
btnLimpar.setBounds(274, 380, 89, 23);
cadastro.add(btnLimpar);
cbCodigo = new JComboBox();
cbCodigo.setBounds(191, 115, 160, 20);
cadastro.add(cbCodigo);
listagem = new JPanel();
listagem.setBackground(Color.WHITE);
tabbedPane.addTab("Listagem", null, listagem, null);
listagem.setLayout(null);
dadosTabela();
JScrollPane scrollPane = new JScrollPane(tabela);
scrollPane.setBounds(0, 88, 481, 303);
listagem.add(scrollPane);
JPanel panel_1 = new JPanel();
panel_1.setLayout(null);
panel_1.setBackground(Color.LIGHT_GRAY);
panel_1.setBounds(62, 402, 339, 72);
listagem.add(panel_1);
JButton button = new JButton("Editar");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
tabbedPane.setSelectedIndex(0);
// Variável responsável por capturar a linha selecionada
int linhaSelecionada = -1;
// Busca a linha selecionada e armazena na variável
// linhaSelecionada
linhaSelecionada = tabela.getSelectedRow();
// Validar se uma linha foi selecionada
if (linhaSelecionada >= 0) {
// Armazena a informação da primeira coluna da linha
// selecionada
int codigoLocacao = (int) tabela.getValueAt(linhaSelecionada, 0);
buscarLocacao(codigoLocacao);
} else {
JOptionPane.showMessageDialog(null, "Selecione uma " + "linha para alterar a Locação!");
}
}
});
button.setBounds(31, 11, 135, 23);
panel_1.add(button);
JButton button_1 = new JButton("Excluir");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int linhaSelecionada = -1;
// Busca a linha selecionada e armazena na variável
// linhaSelecionada
linhaSelecionada = tabela.getSelectedRow();
// Validar se uma linha foi selecionada
if (linhaSelecionada >= 0) {
// Armazena a informação da primeira coluna da linha
// selecionada
int codigoLocacao = (int) tabela.getValueAt(linhaSelecionada, 0);
// Ação do botão excluir
excluir(codigoLocacao);
} else {
JOptionPane.showMessageDialog(null, "Selecione uma " + "linha para excluir a locação!!");
}
}
});
button_1.setBounds(186, 11, 135, 23);
panel_1.add(button_1);
JButton button_2 = new JButton("Sair");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
sair();
}
});
button_2.setBounds(104, 49, 135, 23);
panel_1.add(button_2);
JPanel panel_2 = new JPanel();
panel_2.setLayout(null);
panel_2.setBackground(Color.LIGHT_GRAY);
panel_2.setBounds(0, 34, 481, 43);
listagem.add(panel_2);
JLabel label = new JLabel("Filtrar por: ");
label.setBounds(10, 11, 67, 21);
panel_2.add(label);
cbFiltro = new JComboBox();
cbFiltro.setModel(new DefaultComboBoxModel(new String[] {"C\u00F3digo do Filme", "C\u00F3digo da loca\u00E7\u00E3o"}));
cbFiltro.setBounds(66, 11, 104, 20);
panel_2.add(cbFiltro);
txtPesquisa = new JTextField();
txtPesquisa.setColumns(10);
txtPesquisa.setBounds(172, 11, 193, 20);
panel_2.add(txtPesquisa);
JButton button_3 = new JButton("Pesquisar");
button_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String textoPesquisa = txtPesquisa.getText();
Integer tipoPesquisa = cbFiltro.getSelectedIndex();
popularTabela(linha, textoPesquisa, tipoPesquisa);
JOptionPane.showMessageDialog(null, "Tipo: "+tipoPesquisa);
}
});
button_3.setBounds(375, 10, 96, 23);
panel_2.add(button_3);
}
protected void buscarLocacao(int codigoLocacao) {
control.Locacao locacao = new control.Locacao();
for (Locacao loc : locacao.listarLocacao(codigoLocacao + "", 1)) {
codigo_filme.setText(loc.getCodigo_filme());
codigo_funcionario.setText(loc.getCodigo_funcionario());
codigo_cliente.setText(loc.getCodigo_cliente());
dt_locacao.setText(loc.getDt_locacao());
dt_devolucao.setText(loc.getDt_devolucao());
codigoEditar= loc.getId_locacao();
}
cadastro.setVisible(true);
listagem.setVisible(false);
}
protected void excluir(int codigoLocacao) {
int indexNOK = JOptionPane.YES_NO_OPTION;
int mensagem = JOptionPane.showConfirmDialog(null,
"Você tem certeza que deseja " + "deletar a locacao: " + " ?", "Aviso!!!", indexNOK);
// Validar se for clicado em excluir o usuário
if (mensagem == JOptionPane.YES_OPTION) {
control.Locacao locacao = new control.Locacao();
locacao.excluir(codigoLocacao);
// atualizar tabela
popularTabela(linha, null, -1);
}
}
private void dadosTabela() {
tabela = new JTable(linha);
linha.addColumn("Código da Locação");
linha.addColumn("Código do filme");
linha.addColumn("Código do Funcionario");
linha.addColumn("Código do cliente");
linha.addColumn("Data de Locação");
linha.addColumn("Data de Devolução");
popularTabela(linha, null, -1);
}
private void popularTabela(DefaultTableModel linha, String textoPesquisa, Integer tipoPesquisa) {
control.Locacao locacao = new control.Locacao();
linha.setNumRows(0);
// Retornar valores para mostrar na tabela
for (Locacao loc : locacao.listarLocacao(textoPesquisa, tipoPesquisa)) {
linha.addRow(new Object[] {
loc.getId_locacao(), loc.getCodigo_filme(), loc.getCodigo_funcionario(), loc.getCodigo_cliente(), loc.getDt_locacao(), loc.getDt_devolucao() });
}
}
protected void salvar(){
String cod_filme = codigo_filme.getText();
String cod_funcionario= codigo_funcionario.getText();
String cod_cliente = codigo_cliente.getText();
String data_locacao = dt_locacao.getText();
String data_devolucao = dt_devolucao.getText();
if(cod_filme.equals("")&& cod_funcionario.equals("")&&cod_cliente.equals("")&&data_locacao.equals("")){
JOptionPane.showMessageDialog(null, "Preencha os campos");
}else if(data_devolucao.equals("")){
JOptionPane.showMessageDialog(null, "O campo Data de devolução é Obrigatório!");
}
Locacao locacao = new Locacao();
locacao.setCodigo_cliente(cod_cliente);
locacao.setCodigo_funcionario(cod_funcionario);
locacao.setCodigo_filme(cod_filme);
locacao.setDt_locacao(data_locacao);
locacao.setDt_devolucao(data_devolucao);
control.Locacao manutencao = new control.Locacao();
if(codigoEditar == 0){
manutencao.inserir(locacao);
}else{
manutencao.alterar(locacao);
}
tabbedPane.setSelectedIndex(1);
}
protected void sair(){
this.dispose();
JFramePrincipal principal = new JFramePrincipal();
principal.setVisible(true);
}
public void preenche(){
java.sql.Connection conn = null;
// Variável responsável por preparar a execução da query
java.sql.PreparedStatement pstm = null;
// Variável responsável por receber o retorno das informações
// consultadas
ResultSet rs = null;
try{
conn = ConnectDB.conexaoDB();
pstm = conn.prepareStatement(SELECT_FILME);
rs = pstm.executeQuery();
while(rs.next()){
cbCodigo.addItem(rs.getString("codigo_filme"));
}
}catch(SQLException e){
JOptionPane.showMessageDialog(null, "Ocorreu um erro "+ e.getMessage()+ e.getErrorCode()+ e.getSQLState()+e.getLocalizedMessage());
e.printStackTrace();
}
}
}