Como usar um ArrayList de objeto em outras classes?

Boa noite a todos.
Estou tentando criar um programa salvando em memoria, onde eu coloco o produto em um jdialog e consigo ver em uma tabela num jframe principal.
Consegui criar o objeto e a lista e salvar no jframe principal , so que eu quero chamar um jdialog para ficar maus facil de criar os campos e tudo mais, e so deixa no frame principal a tabela pra vizualizar.
Vocês podem me ajudar nisto?

Desde ja agradeço!

Não sei quanto você conhece de programação, mas uma ideia é, se esse ArrayList é um atributo da classe principal, você pode criar métodos de acesso à ele, ou mesmo métodos acessórios para incluir ou editar elementos.

Exemplo simplificado:

class JanelaPrincipal extends JFrame{
  private ArrayList produtos;

  public void adicionarProduto(Produto pro){
    produtos.add(pro);
  }
  // cria e chama o dialog
  private void chamarDialog(){
    new MeuDialog(this).setVisible(true);
  }
}

class MeuDialog extends JDialog{
  private JanelaPrincipal janelaPrincipal;

  public MeuDialog(JanelaPrincipal principal){
      janelaPrincipal = principal;
  }

  // método pra ser chamado ao clicar no botão salvar do JDialog
  void salvarProduto(){
    // cria produto e preenche dados
    Produto pro = new Produto();
    // salva na lista da janela principal
    janelaPrincipal.adicionarProduto(pro);
  }
}

Indo um pouco além, você pode ter classes acessórias que contém o arraylist e os métodos para acessar (incluir, alterar, listar, excluir), separadas das janelas, e tanto sua janela principal quanto o jdialog usam essas classes para manipular a lista de produtos. Essas classes auxiliares funcionam como um repositório (que é um dos termos para se referir à esse tipo de estrutura).

Abraço.

1 curtida

Valeu cara muito obrigado pela ajuda.
Abraços