Menu que cria JButtons [RESOLVIDO]

Eai galera, Beleza,

Estou criando um programa de lanchonete, e na tela de pedidos haverá botões de lanches em suas respectivas categorias, lanche, bebida, sobremesa, etc, e eu queria criar um menu em que o usuário pudesse gerar automaticamente esses botões indo “adicionar novo item” com nome valores e ações e etc, o que eu quiser implementar nele, e não sei como posso está fazendo isso se puderem deixar um artigo para estudo ou um código exemplo para que eu possa colocar minha logica para funcionar kkk.

Valeu.

Eu começaria criando as classes de domínio do seu problema, depois fica bem mais fácil implementar as telas.

Conseguir criar um “Gerador de JButtons” baseado em algumas coisas que comseguir pescar da internet

             private void jbadicionarActionPerformed(java.awt.event.ActionEvent evt) {                                            
            // Variavel Recebendo oque foi digitado no campo de texto do nome
            String NomeLanche = jtnome.getText();
            int Categoria = jcbcategoria.getSelectedIndex();
            jtnome.setText("");
            
            if(NomeLanche.equals("")){ }else{
            
            //--------------------------------------\\
            if (Categoria == 0){//Categoria Lanches
                jtnome.setText("");
            int btnPorLinhaLanche = 800 / (200 + 5);
            int linhaAtualLanche = (++quantJbLanche) / btnPorLinhaLanche;
            int localAtualLanche = quantJbLanche % btnPorLinhaLanche;
            // Adicionando botão
            JButton newbtnlanche = new JButton(NomeLanche);
            //Largura e Altura do botão (Tamanho)
            newbtnlanche.setSize(140, 140);
            newbtnlanche.setLocation(10 + ((200 + 10) * localAtualLanche), 10 + ((40 + 140 ) * linhaAtualLanche));
            
            newbtnlanche.addActionListener(btnCLickLanche);
            Dimension dlanche = new Dimension(800, 10 + ((160 + 66) * linhaAtualLanche) - 55);
           jifpedidos.jdplanche.setPreferredSize(dlanche);
            
           jifpedidos.jdplanche.setSize(dlanche); 
           jifpedidos.jdplanche.add(newbtnlanche);
            }
            //--------------------------------------\\
            if (Categoria == 1){//Categoria Bebidas
                jtnome.setText("");
            int btnPorLinhaBebida = 800 / (200 + 5);
            int linhaAtualBebida = (++quantJbBebida) / btnPorLinhaBebida;
            int localAtualBebida = quantJbBebida % btnPorLinhaBebida;
            // Adicionando botão
            JButton newbtnBebida = new JButton(NomeLanche);
            //Largura e Altura do botão (Tamanho)
            newbtnBebida.setSize(140, 140);
            newbtnBebida.setLocation(10 + ((200 + 10) * localAtualBebida), 10 + ((40 + 140 ) * linhaAtualBebida));
            
            newbtnBebida.addActionListener(btnCLick);
            Dimension dBebida = new Dimension(800, 10 + ((160 + 40) * linhaAtualBebida) + 200);
           jifpedidos.jdpbebida.setPreferredSize(dBebida);
            
           jifpedidos.jdpbebida.setSize(dBebida); 
           jifpedidos.jdpbebida.add(newbtnBebida);
           }
            //--------------------------------------\\
            if (Categoria == 2){//Categoria Sobremesa
                jtnome.setText("");
            int btnPorLinhaSobremesa = 800 / (200 + 5);
            int linhaAtualSobremesa = (++quantJbSobremesa) / btnPorLinhaSobremesa;
            int localAtualSobremesa = quantJbSobremesa % btnPorLinhaSobremesa;
            // Adicionando botão
            JButton newbtnSobremesa = new JButton(NomeLanche);
            //Largura e Altura do botão (Tamanho)
            newbtnSobremesa.setSize(140, 140);
            newbtnSobremesa.setLocation(10 + ((200 + 10) * localAtualSobremesa), 10 + ((40 + 140 ) * linhaAtualSobremesa));
            
            newbtnSobremesa.addActionListener(btnCLick);
            Dimension dBebida = new Dimension(800, 10 + ((160 + 40) * linhaAtualSobremesa) + 200);
           jifpedidos.jdpsobremesa.setPreferredSize(dBebida);
            
           jifpedidos.jdpsobremesa.setSize(dBebida); 
           jifpedidos.jdpsobremesa.add(newbtnSobremesa);
           }
            }
}