Cadastro de filmes, parece que perde o foco dos botões

2 respostas
O

Caros colegas,

Estou iniciando nesta linguagem e acho que vou me adaptar e espero contar com a ajuda de voces para resolver esta dúvida do programa abaixo:

Estou fazendo meu primeiro cadastro no java e tenho 6 botões. Quando entro na aplicação, clico em qualquer botão e funciona.
Exemplo: Botão Proximo navega apartir do primeiro registro Ok. quando faço uma exclusao ou uma atualização em qualquer registro e clico no proximo novamente, os registro não estão navegando, fica como se estivesse perdido o foco.

alguém poderia me ajudar, já que tudo que fiz em anexo foi por conta própria, acessando internet… não tenho onde consultar o assunto.

Se por acaso, houverem outros exemplos de cadastros com incrementos de codigo no banco de dados(Access), também estou precisando.

Grato

Octacilio

Anexo
*

  • cadfilmes.java
  • Created on 5 de Julho de 2004, 20:25
    */

package Locadora;

/**
*

  • @author octanaza
    */
import java.sql.<em>;

import javax.swing.</em>;

import java.awt.<em>;

import java.awt.event.</em>;
class cadfilmes extends JFrame implements ActionListener

{

JLabel L1,L2,L3,L4,L5,L6,L7,L8;

JButton b1,b2,b3,b4,b5,b6;

static JTextField tfCodigo,tfNome,tfGenero,tfProdut,tfDatcom,tfAnopro,tfTemdur;

JPanel p1 = new JPanel();

ResultSet rs;

Statement MeuState;
public static void main(String args[])

{

JFrame Janela = new cadfilmes();

Janela.show();

WindowListener x = new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

};

Janela.addWindowListener(x);

}
cadfilmes()

{

p1.setLayout(new FlowLayout(FlowLayout.LEFT));

L1 = new JLabel("Código ");

L2 = new JLabel(Título);

L3 = new JLabel(Gênero);

L4 = new JLabel(Produtora);

L5 = new JLabel("Data de Compra “);

L6 = new JLabel(“Ano de Produção”);

L7 = new JLabel(“Tempo de Duração”);

L8 = new JLabel(” “);

for (int i=0;i<60;i++)

L8.setText(L8.getText()+” ");

tfCodigo = new JTextField(10);

tfCodigo.addActionListener(this);

tfNome = new JTextField(35);

tfGenero = new JTextField(10);

tfProdut = new JTextField(15);

tfDatcom = new JTextField(;

tfAnopro = new JTextField(5);

tfTemdur = new JTextField(5);

b1=new JButton(Inserir);

b2=new JButton(Atualizar);

b3=new JButton(Excluir);

b4=new JButton(Localizar);

b5=new JButton(Novo);

b6=new JButton(Proximo);

b1.setBackground(new Color(180,180,250));

b2.setBackground(new Color(180,180,250));

b3.setBackground(new Color(180,180,250));

b4.setBackground(new Color(180,180,250));

b5.setBackground(new Color(180,180,250));

b6.setBackground(new Color(180,180,250));

b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

b4.addActionListener(this);

b5.addActionListener(this);

b6.addActionListener(this);

p1.add(L1); p1.add(tfCodigo); p1.add(L2); p1.add(tfNome);

p1.add(L3); p1.add(tfGenero); p1.add(L4); p1.add(tfProdut);

p1.add(L5); p1.add(tfDatcom); p1.add(L6); p1.add(tfAnopro);

p1.add(L7); p1.add(tfTemdur); p1.add(L;

p1.add(b1); p1.add(b2); p1.add(b3);p1.add(b4);p1.add(b5);p1.add(b6);

getContentPane().add(p1);

setTitle(Cadastramento de Filmes);

setSize(610,160);

setResizable(false);

String url = jdbc:odbc:MeuBanco;

try

{

Class.forName( sun.jdbc.odbc.JdbcOdbcDriver );

Connection MinhaConexao = DriverManager.getConnection(url);

MeuState = MinhaConexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY);

rs = MeuState.executeQuery(SELECT * FROM Filmes);

rs.first();

atualizaCampos();

}

catch(ClassNotFoundException ex)

{

System.out.println(Driver JDBC-ODBC não encontrado!);

}

catch(SQLException ex)

{

System.out.println(Problemas na conexao com a fonte de dados);

}

}
public void actionPerformed(ActionEvent e)

{

try

{

if (e.getSource()==b6)

{

// System.out.println(“Proximo”);

// String SQL = “SELECT * FROM Filmes Where codigo = '”+tfCodigo.getText()+"’";

// rs = MeuState.executeQuery(SQL);

rs.next(); // vai p/ o proximo

atualizaCampos();

return;

}

}

catch(SQLException ex) { }

// ------------------ Final do Proximo -------------------

if (e.getSource()==b5)

{

limpaCampos();

return;

}

if (e.getSource()==b1)

//inserir

{

try

{

String SQL = INSERT INTO Filmes (codigo,titulo,genero,” +produtora,compra,anoproducao,duracao) Values (’”+

tfCodigo.getText()+"’,’"+

tfNome.getText()+"’,’"+

tfGenero.getText()+"’,’"+

tfProdut.getText()+"’,’"+

tfDatcom.getText()+"’,’"+

tfAnopro.getText()+"’,’"+

tfTemdur.getText()+"’)";

MeuState.executeUpdate(SQL);

JOptionPane.showMessageDialog(null,“Gravação realizada com sucesso!);

limpaCampos();

}

catch(SQLException ex)

{

if (ex.getMessage().equals(General error))

JOptionPane.showMessageDialog(null,“Filme já Cadastrado);

else

JOptionPane.showMessageDialog(null,“Data Inválida);

}

}
// ------------------ Final da Inclusão -------------------

if (e.getSource()==b2)

//Atualizar

{

try

{

String SQL = “UPDATE Filmes SET “+

“codigo=’”+tfCodigo.getText()+”’,”+

“titulo=’”+tfNome.getText()+"’,"+

“genero=’”+tfGenero.getText()+"’,"+

“produtora=’”+tfProdut.getText()+"’,"+

“compra=’”+tfDatcom.getText()+"’,"+

“anoproducao=’”+tfAnopro.getText()+"’,"+

“duracao=’”+tfTemdur.getText()+"’ “+

“WHERE codigo = '”+tfCodigo.getText()+”’";

int r = MeuState.executeUpdate(SQL);

if (r==1)

JOptionPane.showMessageDialog(null,“Atualização realizada com sucesso”);

else

JOptionPane.showMessageDialog(null,“Esse Filme ainda não está cadastrado

Pressione Inserir”);

}

catch(SQLException ex) { }

}

// ------------------ Final da Atualização -------------------

if (e.getSource()==b3)

// Excluir

{

try

{

String SQL = “SELECT codigo, titulo FROM Filmes Where codigo = '”+tfCodigo.getText()+"’";

rs = MeuState.executeQuery(SQL);

String nome = “”;

try

{

rs.next();

nome = “Deletar o Filme: +rs.getString(titulo);

}

catch(SQLException ex1)

{

JOptionPane.showMessageDialog(null,“Filme nao cadastrado!”);

return;

}

int n = JOptionPane.showConfirmDialog(null,nome, ,JOptionPane.YES_NO_OPTION);

if (n==JOptionPane.YES_OPTION)

{

SQL = “DELETE FROM Filmes Where codigo = '”+tfCodigo.getText()+”’”;

int r = MeuState.executeUpdate(SQL);

if (r==1)

JOptionPane.showMessageDialog(null,“Exclusão realizada com sucesso”);

else

JOptionPane.showMessageDialog(null,“Não foi possível excluir o filme”);

}

else

return;

}

catch(SQLException ex){ }

limpaCampos();

}

// ------------------ Final da Exclusão -------------------
if (e.getSource()==b4 || e.getSource()==tfCodigo)

{

try

{

String SQL = “SELECT * FROM Filmes Where codigo = '”+tfCodigo.getText()+"’";

rs = MeuState.executeQuery(SQL);

rs.next();

tfCodigo.setText(rs.getString(“codigo”));

tfNome.setText(rs.getString(“titulo”));

tfGenero.setText(rs.getString(“genero”));

tfProdut.setText(rs.getString(“produtora”));

tfDatcom.setText(""+rs.getDate(“compra”));

tfAnopro.setText(rs.getString(“anoproducao”));

tfTemdur.setText(rs.getString(“duracao”));

}

catch(SQLException ex)

{

JOptionPane.showMessageDialog(null,“Filme nao Encontrado!”);

return;

}

}

// ------------------ Final da Localização -------------------

}

public static void limpaCampos()

{

tfCodigo.setText("");

tfNome.setText("");

tfGenero.setText("");

tfProdut.setText("");

tfDatcom.setText("");

tfAnopro.setText("");

tfTemdur.setText("");

}
public void atualizaCampos()

{

try

{

tfCodigo.setText(rs.getString(codigo));

tfNome.setText(rs.getString(titulo));

tfGenero.setText(rs.getString(genero));

tfProdut.setText(rs.getString(produtora));

tfDatcom.setText(""+rs.getDate(compra));

tfAnopro.setText(rs.getString(anoproducao));

tfTemdur.setText(rs.getString(duracao));

}

catch(SQLException ex)

{ }

}

}

No momento, preciso aprender uma linguagem que me parece universal.


No momento, preciso aprender uma linguagem que me parece universal.

2 Respostas

_fs

Cara, depois que você atualiza ou insere algo no bd, o que acontece com o objeto ResultSet?

Uma crítica um pouco dura de minha parte: antes de sair programando telinhas e acessando dados com java, apenda mais sobre os funcamentos da linguagem, sobre orientação a objetos e tudo mais.
No próprio site da sun há tutoriais online realmente muito bons.

E uma dica: quando for postar código no fórum, coloque-o entre as tags [ code]seucodigo[ /code], assim ele fica endentado :wink:

plentz

ele ganha dentes? :roll:

Criado 15 de julho de 2004
Ultima resposta 16 de jul. de 2004
Respostas 2
Participantes 3