public void last() throws SQLException{
conecta = new conexao();
conecta.conecta();
conecta.executeSQL("select * from aluno");
conecta.resultset.last();
tfNomeAluno.setText(conecta.resultset.getString("nome"));
tfRaAluno.setText(conecta.resultset.getString("ra"));
}
Olá pessoal, preciso saber como criar um método como esse genérico ou seja, sem precisar cria-los na tela, tentei passar os campos como referência mas sempre da um erro que não consigo nem depurar…senão vou ter que criar n’s métodos…como fazer para passar e receber os campos como ref para a tela?
Crie uma lista de JTextField e uma lista de Strings. Então passe essas duas listas como parâmetros.
Amigo, não se esqueça de fechar o resultset - quem abre alguma coisa deve fechá-la!
beleza meu, vou estudar como criar esses List’s…
Obrigado
estou fazendo algo errado,é assim?
botão…
private void jButton14ActionPerformed(java.awt.event.ActionEvent evt) {
CarregaLista();
a.last(listaCampo,listaString);
}
Método da tela q carrega
public void CarregaLista(){
List listaCampo = new ArrayList();
listaCampo.add(0, tfNomeAluno);
listaCampo.add(1,tfRaAluno);
List listaString = new ArrayList();
listaString.add(0, "String1");
listaString.add(0, "String2");
}
Passagem para classe
private void jButton14ActionPerformed(java.awt.event.ActionEvent evt) {
CarregaLista();
a.last(listaCampo,listaString);
}
Método na classe
public void last(ArrayList campo, ArrayList String) throws SQLException{
int i=0;
conecta = new conexao();
conecta.conecta();
conecta.executeSQL("select * from aluno");
conecta.resultset.last();
campo.add(0,(conecta.resultset.getString("nome")));//COMO PASSAR?
String.add(0,conecta.resultset.getString("ra"));//COMO PASSAR?
}
Obrigado…
Vou fazer dois reparos e dar duas dicas.
a) Tente não usar o método "add" com índice, porque vai dar confusão na certa. Você já fez uma; para evitar problemas, é melhor nunca usar o índice.
b) Use as declarações com "< " e ">", mais conhecidas como "Generics".
Podem ser mais chatas na hora de declarar variáveis e parâmetros, mas tornam mais simples o uso dessas variáveis e parâmetros.
c) Não fique misturando maiúsculas e minúsculas. Nomes de métodos e variáveis devem começar por minúsculas e nomes de classes devem começar por maiúsculas. Assim, só de olhar o programa, você sabe se algo é o nome de uma classe ou então é de um método ou variável.
Por exemplo, "carregaLista" é um método, e "Conexao" uma classe. Isso ajuda a evitar bagunça.
d) Coisas que contém vários objetos (como arrays e listas) devem ficar com seu nome no plural. Isso também ajuda a evitar bagunça. Por exemplo, uma lista de campos pode se chamar "listaCampos" ou então "campos".
// Original
public void carregaLista(){
List listaCampo = new ArrayList();
listaCampo.add(0, tfNomeAluno);
listaCampo.add(1,tfRaAluno);
List listaString = new ArrayList();
listaString.add(0, "String1");
listaString.add(0, "String2"); //<- se olhar direitinho, a string 2 ficou "antes" da string 1. Leia a documentação.
}
Acho que deveria ser assim:
public void CarregaLista(){
List<JTextField> listaCampos = new ArrayList<JTextField>();
listaCampos.add(tfNomeAluno);
listaCampos.add(tfRaAluno);
List<String> listaNomesCampos = new ArrayList<String>();
listaNomesCampos.add("nome");
listaNomesCampos.add("ra");
}
public void last(List<JTextField> campos, List<String> nomesCampos) throws SQLException{
int i=0;
conecta = new Conexao();
conecta.conecta();
conecta.executeSQL("select * from aluno");
conecta.resultset.last();
for (int i = 0; i < campos.size(); ++i) {
JTextField campo = campos.get(i);
String valor = conecta.resultset.getString (nomesCampos.get(i));
campo.setText (valor);
}
}
Muito Obrigado pelas dicas amigo, não vou esquece-las.
Se o método é tão genérico assim, o SELECT não deve ser passado por parâmetro tbm ??
Falows 
verdade, hehehe mas ja to sofrendo desse jeito hehehhehe