Java - set em objeto do arraylist

Galera, é o seguinte. No meu programinha o usuário já consegue inserir projetos, remover projetos, listar os projetos, e buscar um projeto pelo código do projeto. Esses objetos projeto ficam em um ArrayList Projetos do tipo projeto… Como disse, já criei método p inserir, remover, buscar, não estou conseguindo criar um para dar um set no projeto, ou seja, a pessoa busca um projeto pelo código, e “setta” todos os atributos desse objeto projeto do arraylist, deu pra sacar?
segue o código:

import java.util.ArrayList;
import javax.swing.JOptionPane;
import java.util.Iterator;

public class Agencia{
   String dadosProjeto = "";
   private ArrayList <Projeto> projetos;
   
   public Agencia(){
      projetos = new ArrayList<>();
   }
   
   public void inserirProjeto(){
      
      String titulo = JOptionPane.showInputDialog("Título do projeto: ");
      double orcamento = Double.parseDouble(JOptionPane.showInputDialog("Orçamento do projeto: "));
      String duracao = JOptionPane.showInputDialog("Duração do projeto(meses): ");
      String instituicao = JOptionPane.showInputDialog("Insituição: ");
      String areaPesq = JOptionPane.showInputDialog("Área relacionada a pesquisa: ");
      int codProjeto = Integer.parseInt(JOptionPane.showInputDialog("Código do projeto: "));
      Projeto  novoProjeto = new Projeto(titulo, orcamento, duracao, instituicao, areaPesq, codProjeto);
      projetos.add(novoProjeto);
      dadosProjeto += "********************************\nTítulo: " + titulo + "\nOrcamento: " + orcamento + "\nDuracao (meses): " + duracao + "\nInstituicao: " + instituicao + "\nÁrea de pesquisa: " + areaPesq + "\nCódigo do Projeto: " + codProjeto + "\n\n********************************\n";
      
   }
   
   public void listarProjetos(){
      for(Projeto projeto : projetos){
             
             JOptionPane.showMessageDialog(null, "++++ PROJETOS ++++\nTítulo: " + projeto.getTitulo() + "\nOrçamento: " + projeto.getOrcamento() + "\nDuração: " + projeto.getDuracao() + "\nInstituicao: " + projeto.getInstituicao() + "\nÁrea relacionada: " + projeto.getAreaPesq() + "\nCódigo Projeto: " + projeto.getCodProjeto());
      }      
   }
   
   
   
   public void buscarProjeto(){
      int buscaCod = Integer.parseInt(JOptionPane.showInputDialog("Código projeto: "));
      for(int i = 0; i < projetos.size(); i++){
         if(projetos.get(i).getCodProjeto() == buscaCod){
            
                 JOptionPane.showMessageDialog(null, "++++ PROJETO ENCONTRADO ++++\nTítulo: " + projeto.getTitulo() + "\nOrçamento: " + projeto.getOrcamento() + "\nDuração: " + projeto.getDuracao() + "\nInstituicao: " + projeto.getInstituicao() + "\nÁrea relacionada: " + projeto.getAreaPesq() + "\nCódigo Projeto: " + projeto.getCodProjeto() + "\n\n\n  ENTER para adicionar dados do novo projeto");
                 String titulo = JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nTítulo: ");
                 double orcamento = Double.parseDouble(JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nOrçamento do projeto: "));
                 String duracao = JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nDuração do projeto(meses): ");
                 String instituicao = JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nInsituição: ");
                 String areaPesq = JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nÁrea relacionada a pesquisa: ");
                 int codProjeto = Integer.parseInt(JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nCódigo do projeto: "));
                 for(Projeto projeto : projetos){
                 projetos.set(i, projeto);
         
         
                }
         } 
      }
   }
   
   public void buscaPorCodigo(){
   int buscaCod = Integer.parseInt(JOptionPane.showInputDialog("Código do projeto p/ remover: "));
      for(int i = 0; i < projetos.size(); i++){
         if(projetos.get(i).getCodProjeto() == buscaCod){
         JOptionPane.showMessageDialog(null, "++++ PROJETO ENCONTRADO ++++\nTítulo: " + projetos.get(i).getTitulo() + "\nOrçamento: " + projetos.get(i).getOrcamento() + "\nDuração: " + projetos.get(i).getDuracao() + "\nInstituicao: " + projetos.get(i).getInstituicao() + "\nÁrea relacionada: " + projetos.get(i).getAreaPesq() + "\nCódigo Projeto: " + projetos.get(i).getCodProjeto());
         }
      }
   }
   public void buscaRemove(){
   int buscaCod = Integer.parseInt(JOptionPane.showInputDialog("Código do projeto p/ remover: "));
      for(int i = 0; i < projetos.size(); i++){
         if(projetos.get(i).getCodProjeto() == buscaCod){
            projetos.remove(i);
            JOptionPane.showMessageDialog(null, "Projeto removido.");
            
         }
      }
   }
}

a classe acima chamada Agência é onde eu criei todos os métodos e etc.

abaixo, segue a classe agenciaApp, q está o main somente com um menuzinho e chamando alguns métodos correspondentes.

import javax.swing.JOptionPane;
public class AgenciaApp{
   public static void main(String args[]){
   
      int menu;
   
      Agencia agencia = new Agencia();
      do {
      
         menu = Integer.parseInt(JOptionPane.showInputDialog("=-=-=-=-= AGENCIA DE PROJETOS =-=-=-=-=\n 1. Inserir um novo projeto;\n 2. Listar todos os projetos;\n 3. Atualizar a avaliação do projeto;\n 4. Excluir um projeto;\n 5. Listar um projeto pelo número; \n 6. Sair."));
      
         if(menu == 1){
            agencia.inserirProjeto();
         }
      
         if(menu == 2){
            agencia.listarProjetos();
         } 
         
         if(menu == 3){
            agencia.buscarProjeto();
            }
           
         if(menu == 4){
            agencia.buscaRemove();
         
         }
           
         if(menu == 5){
            agencia.buscaPorCodigo();
         }
                    
         if(menu == 6){
            System.exit(0);
            }
      }while(menu != 1 || menu != 2 || menu != 3 || menu != 4);
   
   }   
}

O método buscarProjeto, é onde estou tentando fazer o set do projeto.
desde já, obrigado.

Assumindo que sua classe Projeto possui os setters, seu código ficaria assim:

public void buscarProjeto() {
    int buscaCod = Integer.parseInt(JOptionPane.showInputDialog("Código projeto: "));
    for (Projeto projeto : projetos){
        if (projeto.getCodProjeto() != buscaCod) {
            continue;
        }
        JOptionPane.showMessageDialog(null, "++++ PROJETO ENCONTRADO ++++\nTítulo: " + projeto.getTitulo() + "\nOrçamento: " + projeto.getOrcamento() + "\nDuração: " + projeto.getDuracao() + "\nInstituicao: " + projeto.getInstituicao() + "\nÁrea relacionada: " + projeto.getAreaPesq() + "\nCódigo Projeto: " + projeto.getCodProjeto() + "\n\n\n  ENTER para adicionar dados do novo projeto");
        String titulo = JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nTítulo: ");
        double orcamento = Double.parseDouble(JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nOrçamento do projeto: "));
        String duracao = JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nDuração do projeto(meses): ");
        String instituicao = JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nInsituição: ");
        String areaPesq = JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nÁrea relacionada a pesquisa: ");
        int codProjeto = Integer.parseInt(JOptionPane.showInputDialog("======== ALTERAR DADOS DO PROJETO ENCONTRADO ========\n\nCódigo do projeto: "));

        projeto.setTitulo(titulo);
        projeto.setOrcamento(orcamento);
        projeto.setDuracao(duracao);
        projeto.setInstituicao(instituicao);
        projeto.setAreaPesquisa(areaPesq);
        projeto.setCodigo(codProjeto);
        return;
    }
}

Opa, desculpa por não ter falado isso,. Sim, tenho a classe projeto com os sets e gets tudo ok…
Vou dar uma olhada na sua resposta e ver como fica o funcionamento aqui e já dou o feedback :wink:

Deu certo, muito obrigado :DDDD, outra dúvida…
No método listarProjetos(); ele está listando cada projeto em uma janela do JOptionPane.
Ou seja, se tiver 5 projetos, aparece o Frame do primeiro, ai eu aperto em “OK” e aparece uma nova janela com o segundo projeto e assim sucessivamente…
Tem uma dica de como eu posso, sempre q adicionar um novo projeto, aparecer junto com os demais?