Chamar lista através da interface gráfica![RESOLVIDO]

Boa tarde pessoal, tenho uma implementação onde devo fazer que exista um botão onde nele eu possa ir para o proximo elemento na lista e consequentemente aparecer os dados desse proximo elemento na janela!

Minha classe com a lista e a interface!

Classe lista

public class CadastroDePessoas{

    private ArrayList<Pessoa> lista;
    private ListIterator<Pessoa> iterador;

    public CadastroDePessoas(){
        lista = new ArrayList<Pessoa>();
        iterador = lista.listIterator();
    }

    public boolean adiciona(Pessoa p){
        return lista.add(p);
    }

    public String proxima(){
        return lista.listIterator().next().getNome();
    }

Interface (evento)

private void btnProximoActionPerformed(java.awt.event.ActionEvent evt) { String a = cdp.proxima(); cdp.proxima(); txtNome.setText(a); }

[code]
public class Main {

public static void main(String args[]){

    CadastroDePessoas cdp = new CadastroDePessoas();

    Pessoa p1 = new Pessoa("TESTE", "a", "a", "a", "a", "a", "a", "a");
    Pessoa p2 = new Pessoa("GUILHERME", "2a", "2a", "22a", "2a", "2a", "2a", "2a");
    Pessoa p3 = new Pessoa("JACO", "wow", "wow", "wow", "wow", "wow", "wow", "wow");
    Pessoa p4 = new Pessoa("LUIS", "2", "2", "2", "2", "2", "2", "2");
    Pessoa p5 = new Pessoa("ANA", "AA", "AA", "AA", "AA", "AA", "AA", "AA");

    cdp.adiciona(p1);
    cdp.adiciona(p2);
    cdp.adiciona(p3);
    cdp.adiciona(p4);
    cdp.adiciona(p5); 

   TestaProximo tp = new TestaProximo();
   tp.setVisible(true); [/code]

e o ERRO

Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException
        at java.util.AbstractList$Itr.next(AbstractList.java:350)
        at Classes.CadastroDePessoas.proxima(CadastroDePessoas.java:28)
        at Interface.TestaProximo.btnProximoActionPerformed(TestaProximo.java:110)
        at Interface.TestaProximo.access$100(TestaProximo.java:22)
        at Interface.TestaProximo$2.actionPerformed(TestaProximo.java:56)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Se alguem perceber algum erro posta ai! :wink: Pq um olhar de fora as vezes ve mais!

VlW

1º Já no primeiro clique do botão já dá erro, ou consegue imprimir alguma vez?
2º Porque no método btnProximoActionPerformed você chama duas vezes o método cdp.proxima()?
String a = cdp.proxima();
cdp.proxima();

3º No seu método proxima() de cadastro de pessoas, uma hora ou outra vai dar erro, porque você esta sempre chamando o next da lista e o método do objeto contido, se não houver um tratamento para evitar que chame uma posição da lista q não existe sempre vai dar erro.

Ok eu sei q tenho q tratar a IndexOutOfBounds, e a NoSuchElements mas agora soh qro para teste!

E é sim qdo eu clico na primeira vez ele jah estoura a NoSuchElements, sabe onde pode estar o erro?

Obrigado!

Tem como postar o código completo das classes? As linhas que estáo sendo apontadas nos erros náo constam no trecho de código que vocë enviou.

ok

Classes:

Cadastro de Pessoas

package Classes;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;
/**
 *
 * @author Guilherme Santos Souza
 * @version 1.0
 */

public class CadastroDePessoas{

    private ArrayList<Pessoa> lista;
    private ListIterator<Pessoa> iterador;

    public CadastroDePessoas(){
        lista = new ArrayList<Pessoa>();
        iterador = lista.listIterator();
    }

    public boolean adiciona(Pessoa p){
        return lista.add(p);
    }

    public Pessoa proxima(){
        return lista.listIterator().next();
    }
 /*   public void it(){
        while(iterador.hasNext()){
            Pessoa p = iterador.next();
            System.out.println(p.toString());
        }
    }*/

    @Override
    public String toString(){
        StringBuffer s = new StringBuffer();
        for(Pessoa p : lista){
            s.append(p.toString());
        }
        return s.toString();
    }
}

Main

[code]
public class Main {

public static void main(String args[]){

    for(int x = 1; 1 < x; x++)
    {
    CriarConexaoBancoDeDados c = new CriarConexaoBancoDeDados();
    c.criaConexao();
    ConexaoETabelas conETab = new ConexaoETabelas();
    conETab.criarTabelaDoProjeto();
    }
     */

    CadastroDePessoas cdp = new CadastroDePessoas();

    Pessoa p1 = new Pessoa("TESTE", "a", "a", "a", "a", "a", "a", "a");
    Pessoa p2 = new Pessoa("GUILHERME", "2a", "2a", "22a", "2a", "2a", "2a", "2a");
    Pessoa p3 = new Pessoa("JACO", "wow", "wow", "wow", "wow", "wow", "wow", "wow");
    Pessoa p4 = new Pessoa("LUIS", "2", "2", "2", "2", "2", "2", "2");
    Pessoa p5 = new Pessoa("ANA", "AA", "AA", "AA", "AA", "AA", "AA", "AA");

    
    cdp.adiciona(p2);
    cdp.adiciona(p3);
    cdp.adiciona(p4);
    cdp.adiciona(p5);
    cdp.adiciona(p1);
   
   TestaProximo tp = new TestaProximo();  tp.setVisible(true);[/code]

Interface grafica(Com cod gerado pelo netBeans)

public class TestaProximo extends javax.swing.JFrame {

   CadastroDePessoas cdp = new Classes.CadastroDePessoas();

    public TestaProximo() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        btnAnterior = new javax.swing.JButton();
        btnProximo = new javax.swing.JButton();
        txtNome = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        btnAnterior.setText("<<");
        btnAnterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAnteriorActionPerformed(evt);
            }
        });

        btnProximo.setText(">>");
        btnProximo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnProximoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(76, 76, 76)
                .addComponent(txtNome, javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)
                .addContainerGap(397, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(95, 95, 95)
                .addComponent(btnAnterior)
                .addGap(18, 18, 18)
                .addComponent(btnProximo)
                .addContainerGap(416, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addGap(170, 170, 170)
                .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 59, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnProximo)
                    .addComponent(btnAnterior))
                .addGap(117, 117, 117))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 627, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 389, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void btnAnteriorActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
    }                                           

    private void btnProximoActionPerformed(java.awt.event.ActionEvent evt) {                                           
        cdp.proxima();
        txtNome.setText(cdp.proxima());
    }                                          


    // Variables declaration - do not modify                     
    private javax.swing.JButton btnAnterior;
    private javax.swing.JButton btnProximo;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField txtNome;
    // End of variables declaration                   

}

Classe Pessoa tb


import java.text.SimpleDateFormat;
import java.util.ArrayList;

public class Pessoa {

    private ArrayList<String> listaTipo;
    private String nome;
    private String endereco;
    private String telefone;
    private String cpf;
    private String cnpj;
    private String fax;
    private String email;
    private String homepage;
    private String cep;
    private String bairro;
    private String cidade;
    private String uf;
    private String observacao;
    private String apelido;
    private SimpleDateFormat dataFundacao;
    private SimpleDateFormat dataNascimento;

    public Pessoa(String nome, String endereco, String telefone, String email, String cep, String bairro, String cidade, String uf) {
        this.nome = nome;
        this.endereco = endereco;
        this.telefone = telefone;
        this.email = email;
        this.cep = cep;
        this.bairro = bairro;
        this.cidade = cidade;
        this.uf = uf;
    }

    public boolean addTipo(String tipo){
        return listaTipo.add(tipo);
    }

    public ArrayList<String> getListaTipo() {
        return listaTipo;
    }
    
    public String getApelido() {
        return apelido;
    }

    public String getBairro() {
        return bairro;
    }

    public String getCep() {
        return cep;
    }

    public String getCidade() {
        return cidade;
    }

    public SimpleDateFormat getDataFundacao() {
        return dataFundacao;
    }

    public String getEmail() {
        return email;
    }

    public String getFax() {
        return fax;
    }

    public String getHomepage() {
        return homepage;
    }

    public String getObservacao() {
        return observacao;
    }

    public String getUf() {
        return uf;
    }

    public String getCpf() {
        return cpf;
    }

    public SimpleDateFormat getDataNascimento() {
        return dataNascimento;
    }

    public String getEndereco() {
        return endereco;
    }

    public String getNome() {
        return nome;
    }

    public String getTelefone() {
        return telefone;
    }

    public String getCnpj() {
        return cnpj;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public void setCep(String cep) {
        this.cep = cep;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public void setCnpj(String cnpj) {
        this.cnpj = cnpj;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public void setDataFundacao(SimpleDateFormat dataFundacao) {
        this.dataFundacao = dataFundacao;
    }

    public void setDataNascimento(SimpleDateFormat dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public void setHomepage(String homepage) {
        this.homepage = homepage;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void setObservacao(String observacao) {
        this.observacao = observacao;
    }

    public void setUf(String uf) {
        this.uf = uf;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }
    
    @Override
    public String toString() {
        StringBuffer s = new StringBuffer();
        s.append("\nNome: ");
        s.append(nome);
        s.append("\nCPF: ");
        s.append(cpf);
        s.append("\nData de nascimento: ");
        s.append(dataNascimento);
        s.append("\nTelefone: ");
        s.append(telefone);
        return s.toString();
    }
}

Vamos lá.

1 - Você deveria tá chamando seu método proxima de CadastroDePessoas somente uma vez no método btnProximo…

private void btnProximoActionPerformed(java.awt.event.ActionEvent evt) { //cdp.proxima(); txtNome.setText(cdp.proxima().getNome()); }

2 - Essa referencia cdp que vocë usa em TestaProximo não é a mesma que vocë usa em Main, portanto a lista de pessoas de TestaProximo está vazia, por isso tá dando o erro. Tente preencher a lista da referencia testa proximo, mais ou menos assim:

TestaProximo tp = new TestaProximo(); tp.getCdp().adiciona(p2); tp.getCdp().adiciona(p3); tp.getCdp().adiciona(p4); tp.getCdp().adiciona(p5); tp.getCdp().adiciona(p1); tp.setVisible(true);

e ao invés de acessar o iterator da lista como você está fazendo tente fazer assim:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;
/**
 *
 * @author Guilherme Santos Souza
 * @version 1.0
 */

public class CadastroDePessoas{

    private ArrayList<Pessoa> lista;
    private int posicao = 0;

    public CadastroDePessoas(){
        lista = new ArrayList<Pessoa>();
    }

    public boolean adiciona(Pessoa p){
        return lista.add(p);
    }

    public Pessoa proxima(){
        return lista.get(posicao++);
    }
 /*   public void it(){
        while(iterador.hasNext()){
            Pessoa p = iterador.next();
            System.out.println(p.toString());
        }
    }*/

    @Override
    public String toString(){
        StringBuffer s = new StringBuffer();
        for(Pessoa p : lista){
            s.append(p.toString());
        }
        return s.toString();
    }
}

aqui funcionou na boa.
Espero ter ajudado.

Vou testar obrigado pela ajuda! :smiley:

Soh mais uma coisa!
Eu tentei usar um posicao –

para voltar na lista, mas ele continua indo pra frente! :?
Sabe o q houve?

E mais uma coisa qdo o programa for rodar pra valer não vou poder deixar akele codigo na classe da interface gráfica! :?

Pra questão da posição faça assim

na declaração declare posição com -1

private int posicao = -1;

nos métodos assim:

[code] public Pessoa proxima(){
return lista.get(++posicao);
}

public Pessoa anterior(){
    return lista.get(--posicao);
}[/code]

Não entendi o que você quis dizer não deixar o código na classe da interface gráfica, mas a lógica tá aí, vamos pensar um pouco né… :smiley: .
Mas qualquer outra dúvida posta aí, mas só vou responder amanhã, tô indo pra casa cuidar do meu filho flw…

Boa idéia eu ja tinha colocado o (–) atras da variavel posição, mas o (++) não! :wink:

Mais uma coisa na JFrame eu devo colocar algo assim:

public class TestaProximo extends javax.swing.JFrame {

   CadastroDePessoas cdp = new Classes.CadastroDePessoas();

   Pessoa p1 = new Pessoa("TESTE", "a", "a", "a", "a", "a", "a", "a");
   Pessoa p2 = new Pessoa("GUILHERME", "2a", "2a", "22a", "2a", "2a", "2a", "2a");
   Pessoa p3 = new Pessoa("JACO", "wow", "wow", "wow", "wow", "wow", "wow", "wow");
   Pessoa p4 = new Pessoa("LUIS", "2", "2", "2", "2", "2", "2", "2");
   Pessoa p5 = new Pessoa("ANA", "AA", "AA", "AA", "AA", "AA", "AA", "AA");

   cdp.adiciona(p1);
   cdp.adiciona(p2);
   cdp.adiciona(p3);
   cdp.adiciona(p4);
   cdp.adiciona(p5);

    public TestaProximo() {
        initComponents();

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        painel = new javax.swing.JPanel();
        btnAnterior = new javax.swing.JButton();
        btnProximo = new javax.swing.JButton();
        txtNome = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        btnAnterior.setText("<<");
        btnAnterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAnteriorActionPerformed(evt);
            }
        });

        btnProximo.setText(">>");
        btnProximo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnProximoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout painelLayout = new javax.swing.GroupLayout(painel);
        painel.setLayout(painelLayout);
        painelLayout.setHorizontalGroup(
            painelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelLayout.createSequentialGroup()
                .addGap(76, 76, 76)
                .addComponent(txtNome, javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)
                .addContainerGap(397, Short.MAX_VALUE))
            .addGroup(painelLayout.createSequentialGroup()
                .addGap(95, 95, 95)
                .addComponent(btnAnterior)
                .addGap(18, 18, 18)
                .addComponent(btnProximo)
                .addContainerGap(416, Short.MAX_VALUE))
        );
        painelLayout.setVerticalGroup(
            painelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, painelLayout.createSequentialGroup()
                .addGap(170, 170, 170)
                .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 59, Short.MAX_VALUE)
                .addGroup(painelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnProximo)
                    .addComponent(btnAnterior))
                .addGap(117, 117, 117))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 627, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(painel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 389, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(painel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void btnAnteriorActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
    }                                           

    private void btnProximoActionPerformed(java.awt.event.ActionEvent evt) {                                           
        txtNome.setText(cdp.prox().getNome());
    }                                          


    // Variables declaration - do not modify                     
    private javax.swing.JButton btnAnterior;
    private javax.swing.JButton btnProximo;
    private javax.swing.JPanel painel;
    private javax.swing.JTextField txtNome;
    // End of variables declaration          


    }

Mas qdo eu faço isso o complilador não encontra as instancias criadas de Pessoa (p1,p2,p3,p4,p5)!!

Obrigado pela força pessoal!

Assim não.

As referências p1, p2 … podem continuar na classe com o método main, na classe TestaProximo eu adicionei um método getCdp() pra poder ter acessso ao atributo cpd que você criou, aí por esse método eu acesso o método adiciona de cadastroDePessoas.

Segue os fonte pra você entender melhor.

Main.java

[code]
public class Main {

public static void main(String args[]){

    CadastroDePessoas cdp = new CadastroDePessoas();

    Pessoa p1 = new Pessoa("TESTE", "a", "a", "a", "a", "a", "a", "a");
    Pessoa p2 = new Pessoa("GUILHERME", "2a", "2a", "22a", "2a", "2a", "2a", "2a");
    Pessoa p3 = new Pessoa("JACO", "wow", "wow", "wow", "wow", "wow", "wow", "wow");
    Pessoa p4 = new Pessoa("LUIS", "2", "2", "2", "2", "2", "2", "2");
    Pessoa p5 = new Pessoa("ANA", "AA", "AA", "AA", "AA", "AA", "AA", "AA");
   
   TestaProximo tp = new TestaProximo();  
   tp.getCdp().adiciona(p2);
   tp.getCdp().adiciona(p3);
   tp.getCdp().adiciona(p4);
   tp.getCdp().adiciona(p5);
   tp.getCdp().adiciona(p1);
   tp.setVisible(true);
}

}[/code]

CadastrodePessoas.java

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;
/**
 *
 * @author Guilherme Santos Souza
 * @version 1.0
 */

public class CadastroDePessoas{

    private ArrayList<Pessoa> lista;
    private int posicao = -1;

    public CadastroDePessoas(){
        lista = new ArrayList<Pessoa>();
    }

    public boolean adiciona(Pessoa p){
        return lista.add(p);
    }

    public Pessoa proxima(){
        return lista.get(++posicao);
    }
    
    public Pessoa anterior(){
        return lista.get(--posicao);
    }
 /*   public void it(){
        while(iterador.hasNext()){
            Pessoa p = iterador.next();
            System.out.println(p.toString());
        }
    }*/

    @Override
    public String toString(){
        StringBuffer s = new StringBuffer();
        for(Pessoa p : lista){
            s.append(p.toString());
        }
        return s.toString();
    }
}

TestaProxima.java


public class TestaProximo extends javax.swing.JFrame {

    // Variables declaration - do not modify                     
    private javax.swing.JButton btnAnterior;
    private javax.swing.JButton btnProximo;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField txtNome;
    // End of variables declaration 

   CadastroDePessoas cdp = new CadastroDePessoas();

    public TestaProximo() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        btnAnterior = new javax.swing.JButton();
        btnProximo = new javax.swing.JButton();
        txtNome = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        btnAnterior.setText("<<");
        btnAnterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAnteriorActionPerformed(evt);
            }
        });

        btnProximo.setText(">>");
        btnProximo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnProximoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(76, 76, 76)
                .addComponent(txtNome, javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)
                .addContainerGap(397, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(95, 95, 95)
                .addComponent(btnAnterior)
                .addGap(18, 18, 18)
                .addComponent(btnProximo)
                .addContainerGap(416, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addGap(170, 170, 170)
                .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 59, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnProximo)
                    .addComponent(btnAnterior))
                .addGap(117, 117, 117))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 627, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 389, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void btnAnteriorActionPerformed(java.awt.event.ActionEvent evt) {                                            
    	 txtNome.setText(cdp.anterior().getNome());
    }                                           

    private void btnProximoActionPerformed(java.awt.event.ActionEvent evt) {                                           
        //cdp.proxima();
        txtNome.setText(cdp.proxima().getNome());
    }                     
    
    public CadastroDePessoas getCdp() {
		return cdp;
	}

}

E outra dica, tenta importar os pacotes das classe que tu tá utilizando ao invés de ficar fazendo new javax.swing.JButton(), fica muito sujo o código, flw.

Esquece isso que eu disse acima, pelo que vi vocë tá utilizando o NetBeans. É ele quem faz desse jeito.

Bom continuo com a excessão de indexOutOfBoundsException estourando, não sei o pq, pois jah adicionei todos os elementos na lista!

CoDiGo

Main:

public static void main(String args[]){
        JanelaMenuPrincipal jmp = new JanelaMenuPrincipal();
        jmp.setVisible(true);

        CadastroDePessoas cdp = new CadastroDePessoas();

        Pessoa p1 = new Pessoa("TESTE", "a", "a", "a", "a", "a", "a", "a");
        Pessoa p2 = new Pessoa("GUILHERME", "2a", "2a", "22a", "2a", "2a", "2a", "2a");
        Pessoa p3 = new Pessoa("JACO", "wow", "wow", "wow", "wow", "wow", "wow", "wow");
        Pessoa p4 = new Pessoa("LUIS", "2", "2", "2", "2", "2", "2", "2");
        Pessoa p5 = new Pessoa("ANA", "AA", "AA", "AA", "AA", "AA", "AA", "AA");

        JanelaCadastroDePessoas jcp = new JanelaCadastroDePessoas();
        jcp.getCdp().adiciona(p1);
        jcp.getCdp().adiciona(p2);
        jcp.getCdp().adiciona(p3);
        jcp.getCdp().adiciona(p4);
        jcp.getCdp().adiciona(p5);
        

Evento do botão!

private void btnProximoElemActionPerformed(java.awt.event.ActionEvent evt) { // try{ txtNome.setText(cdp.prox().getNome()); // } /* catch(NoSuchElementException nsee){ JOptionPane.showMessageDialog(null, "Não há elementos na lista!", "ERRO", JOptionPane.ERROR_MESSAGE); } catch(IndexOutOfBoundsException iofbe){ JOptionPane.showMessageDialog(null, "Não há elementos nessa posição da lista", "ERRO", JOptionPane.ERROR_MESSAGE); }*/ }

Cara seu código agora ficou confuso.

Quem é JanelaCadastroDePessoas, JanelaMenuPrincipal?

Se o botáo que chama o próximo elemento da lista estiver em JanelaMenuPrincipal, não vai dar certo mesmo, você está adicionando pessoas em JanelaCadastroDePessoas.

Não, não a janela menu principal é a janela “main” e através dela eu chego na JCadastroDePessoas!

Ah cara entendi. você tá querendo fazer uma tela de cadastro com aqueles botões de navegação pelo indice e tal, acho que é isso.
Se for, acho bom darmos uma mudada no seu código. Agora tô sem tempo, vou ver se faço um exemplo bem prático e te mando amanhã. Eu já fiz isso em um sistema de controle de estoque e vendas, mas resolvi mudar, mas em todo caso, se quiser nos falamos amanhã, flw.

Vlw pela ajuda!!

essa navegação ta me dando dor de cabeça! hehe!!

Ateh amanha!
flw!

Pessoal o negócio é o seguinte:

preciso que minha interface gráfica, qdo eu clicar no botão (next) ela ir para o proximo elemento da lista, isso eu já consegui, mas sempre que tento chamar a minha lista para fazer um get(pos) eu não consigo!

Nos posts acima tem os codigos das minhas implementações, sei q estou criando akela lista vazia, mas não axei outra forma de tentar solucionar o problema!
vlw!

Ve se é oke eu entendi.

Vc tem uma tela de cadastro e um botao de navegação (next)
Vc tem uma lista de pessoas.
Vc quer navegar por essa lista, mostrando os dados até o final da lista e caso chegue no final, parar ou voltar pro inicio. isso?

qro q qdo eu clicar no botão next todos os campos se preencham com os dados da proxima pessoa da lista!

Gente isso aki ta me dando nos nervos!

Tipo eu tenho a minha lista CadPessoas e interface grafica CadastrarPessoas, mas não consigo fazer com q a interface busque os dados da lista!
alguem sabe como devo implementar isso!

Obg!