Olá galera, gostaria que alguém me ajudasse, estou querendo manipular (salvar, pesquisar e excluir) os valores de de cada objeto em uma arrayList, e ai esta a minha dificuldade, pois estou programando em camadas e não estou conseguindo fazer um método onde ele faz a consuta dentro do arrayList, eu criei um botão proximo e um anterior para poder listar os dados setando no JTextField, embaixo esta o meu código para ver como ja está:
esta é a primeira classe onde esta a parte os componentes grafico
package camada_visao;
import java.awt.event.*;
import java.text.ParseException;
import javax.swing.*;
import javax.swing.text.MaskFormatter;
import camada_processamento.Aluno;
import camada_bancodedados.AlunoMemoria;
public class CadastrarAluno extends JFrame{
// declarando os objetos
private Aluno aluno;
private AlunoMemoria lista;
private JPanel painel;
private JLabel lbMatricula, lbNome, lbEndereco, lbCidade, lbMensalidade, lbNascimento, lbUF;
private JTextField tfMatricula, tfNome, tfEndereco, tfCidade;
private JFormattedTextField jftfMensalidade, jftfNascimento;
private MaskFormatter mfMensalidade, mfNascimento;
private JSpinner jsEstado;
private SpinnerListModel slmEstado;
private JButton btIncluir, btEditar, btGravar, btCancelar, btExcluir, btAnterior, btProximo;
private SpinnerModel smEstado;
private int i;
private boolean val;
public CadastrarAluno(){
super("Cadastro de Alunos");
i = 1;
val = true;
// inciando os objetos
try{
mfMensalidade = new MaskFormatter("R$ ******");
mfMensalidade.setValidCharacters
(".[telefone removido]");
mfNascimento = new MaskFormatter("**/**/****");
mfNascimento.setValidCharacters
("[telefone removido]");
}
catch(ParseException e){
e.printStackTrace();
}
aluno = new Aluno();
lista = new AlunoMemoria();
tfMatricula = new JTextField();
tfNome = new JTextField();
tfEndereco = new JTextField();
tfCidade = new JTextField();
jftfMensalidade = new JFormattedTextField(mfMensalidade);
jftfNascimento = new JFormattedTextField(mfNascimento);
lbMatricula = new JLabel("Núm. Matrícula");
lbNome = new JLabel("Nome do Aluno");
lbEndereco = new JLabel("Endereço");
lbCidade = new JLabel("Cidade");
lbMensalidade = new JLabel("Valor Mensalidade");
lbNascimento = new JLabel("Data Nascimento");
lbUF = new JLabel("Uf");
slmEstado = new SpinnerListModel(
new String []{"","Ac","Mt","Ro"});
jsEstado = new JSpinner(slmEstado);
btIncluir = new JButton("Incluir");
btEditar = new JButton("Editar");
btGravar = new JButton("Gravar");
btCancelar = new JButton("Cancelar");
btExcluir = new JButton("Excluir");
btAnterior = new JButton("Anterior");
btProximo = new JButton("Próximo");
setSize(700,400);
painel = new JPanel();
tfMatricula.setBounds(140,30,100,25);
tfNome.setBounds(140,70,500,25);
tfEndereco.setBounds(140,110,500,25);
tfCidade.setBounds(140,150,300,25);
jftfMensalidade.setBounds(140,190,150,25);
jftfNascimento.setBounds(140,230,150,25);
lbMatricula.setBounds(50,30,130,25);
lbNome.setBounds(50,70,120,25);
lbEndereco.setBounds(80,110,100,25);
lbCidade.setBounds(90,150,100,25);
lbMensalidade.setBounds(30,190,130,25);
lbNascimento.setBounds(40,230,130,25);
lbUF.setBounds(470,150,30,25);
jsEstado.setBounds(500,150,50,25);
btIncluir.setBounds(20,300,100,25);
btEditar.setBounds(150,300,100,25);
btGravar.setBounds(280,300,100,25);
btCancelar.setBounds(410,300,100,25);
btExcluir.setBounds(540,300,100,25);
btAnterior.setBounds(430,30,100,25);
btProximo.setBounds(540,30,100,25);
tfMatricula.enable(false);
tfNome.enable(false);
tfEndereco.enable(false);
tfCidade.enable(false);
jftfMensalidade.enable(false);
jftfNascimento.enable(false);
final JButton btSim = new JButton("Sim");
btSim.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null, "Registro excluído com sucesso!");
}
});
btIncluir.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
val = false;
tfMatricula.setText(String.valueOf(i));
tfNome.setText("");
tfEndereco.setText("");
tfCidade.setText("");
jftfMensalidade.setText("");
jftfNascimento.setText("");
jsEstado.setValue("");
tfNome.enable(true);
tfEndereco.enable(true);
tfCidade.enable(true);
jftfMensalidade.enable(true);
jftfNascimento.enable(true);
}
});
btEditar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
val = false;
tfNome.enable(true);
tfEndereco.enable(true);
tfCidade.enable(true);
jftfMensalidade.enable(true);
jftfNascimento.enable(true);
}
});
btGravar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
if(tfMatricula.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Informe Núm. Matrícula");
}
else if(tfNome.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Informe Nome");
}
else if(tfEndereco.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Informe Endereço");
}
else if(tfCidade.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Informe Cidade");
}
else{
aluno.setCodigo(tfMatricula.getText());
aluno.setNome(tfNome.getText());
aluno.setEndereco(tfEndereco.getText());
aluno.setCidade(tfCidade.getText());
aluno.setUf(jsEstado.getValue().toString());
aluno.setMensalidade(jftfMensalidade.getText());
aluno.setNascimento(jftfNascimento.getText());
lista.salvar(aluno);
JOptionPane.showMessageDialog(null, "Aluno cadastrado com sucesso");
i = Integer.parseInt(tfMatricula.getText());
i=i+1;
tfMatricula.setText("");
tfNome.setText("");
tfEndereco.setText("");
tfCidade.setText("");
jftfMensalidade.setText("");
jftfNascimento.setText("");
jsEstado.setValue("");
tfMatricula.enable(false);
tfNome.enable(false);
tfEndereco.enable(false);
tfCidade.enable(false);
jftfMensalidade.enable(false);
jftfNascimento.enable(false);
val = true;
}
}
});
btCancelar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
val = true;
tfMatricula.setText("");
tfNome.setText("");
tfEndereco.setText("");
tfCidade.setText("");
jftfMensalidade.setText("");
jftfNascimento.setText("");
jsEstado.setValue("");
tfMatricula.enable(false);
tfNome.enable(false);
tfEndereco.enable(false);
tfCidade.enable(false);
jftfMensalidade.enable(false);
jftfNascimento.enable(false);
}
});
btExcluir.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(tfMatricula.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Selecione um aluno");
}
else{
Object []options = new Object[2];
options[0] = btSim;
options[1] = "Não";
JOptionPane.showOptionDialog(null, "Deseja realmente excluir este registro?", "Atenção",
JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,
null, options, options[0]);
}
}
});
btProximo.addActionListener(new ActionListener(){ //este é o método onde chama o metodo getAluno na classe AlunoMemoria
public void actionPerformed(ActionEvent e) {
if(val == true){
aluno = lista.getAluno(1);
tfMatricula.setText(aluno.getCodigo());
tfNome.setText(aluno.getNome());
tfEndereco.setText(aluno.getEndereco());
tfCidade.setText(aluno.getCidade());
jftfMensalidade.setText(aluno.getMensalidade());
jftfNascimento.setText(aluno.getNascimento());
jsEstado.setValue(aluno.getUf());
JOptionPane.showMessageDialog(null, "lista: ");
}
else{}
}
});
painel.add(tfMatricula);
painel.add(tfNome);
painel.add(tfEndereco);
painel.add(tfCidade);
painel.add(jftfMensalidade);
painel.add(jftfNascimento);
painel.add(lbMatricula);
painel.add(lbNome);
painel.add(lbEndereco);
painel.add(lbCidade);
painel.add(lbMensalidade);
painel.add(lbNascimento);
painel.add(lbUF);
painel.add(jsEstado);
painel.add(btIncluir);
painel.add(btEditar);
painel.add(btGravar);
painel.add(btCancelar);
painel.add(btExcluir);
painel.add(btAnterior);
painel.add(btProximo);
painel.setLayout(null);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(painel);
}
public static void main(String[]args){
CadastrarAluno newFrame = new CadastrarAluno();
}
}
esta é a segunda classe, onde estão os meus atributos com os metodos get e set
package camada_processamento;
public class Aluno {
private String codigo, nome, endereco, cidade, uf, mensalidade, nascimento;
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getMensalidade() {
return mensalidade;
}
public void setMensalidade(String mensalidade) {
this.mensalidade = mensalidade;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getUf() {
return uf;
}
public void setUf(String uf) {
this.uf = uf;
}
public String getNascimento() {
return nascimento;
}
public void setNascimento(String nascimento) {
this.nascimento = nascimento;
}
}
e esta é a terceira classe onde esta o arraylist
package camada_bancodedados;
import java.util.ArrayList;
import java.util.Iterator;
import camada_processamento.Aluno;
public class AlunoMemoria {
ArrayList alunos = new ArrayList();
Aluno dados = new Aluno();
public void salvar(Aluno value) {
alunos.add(value);
}
public Aluno getAluno(int codigo) { //este é o método que deveria fazer a consulta no arrayList onde é chamar pelo botão proximo e anterior
dados = alunos.get(codigo);
return dados;
}
}
é isto, espero que alguém possa me ajudar