Você não respondeu minha pergunta: nessa atividade, é obrigatório usar algum banco de dados (ex: MySQL, PostgreSQL), ou tudo pode ser feito somente com classes Java?
Mas ok, vamos lá. Supondo que isso será uma aplicação desktop com Swing e usando um banco de dados, eis algumas coisas que você vai precisar no geral:
- saber como criar telas: você pode ver tutoriais de Swing, usando o Netbeans ou criando tudo via código/na mão;
- criar bancos de dados em um SGBDR, como SQLite, MySQL ou PostgreSQL;
- criar tabelas (via SQL ou em uma ferramenta como MySQL Workbench);
- como estruturar um banco de dados (tipos de dados adequados para cada campo, chaves primárias e estrangeiras);
- conectar em bases de dados no Java via JDBC;
- fazer consultas no Java via PreparedStatements, percorrer e usar os resultados dessas consultas;
- operações de CRUD (inserção, alteração, consulta e remoção via SQL no Java);
- como funcionam coisas como sum, max, min, group by e order by no Java/SQL;
- criar classes para representar entidades do banco (ex: um registro na tabela produtos do banco pode corresponder a uma instância de uma classe chamada Produto dentro do Java);
- trabalhar com TableModels no Java (e já recomendando que você evite o DefaultTableModel);
Você pode estudar essas coisas individualmente e, quando for criar a aplicação, juntar esse conhecimento. Algumas coisas poderiam em teoria ajudar em algumas dessas etapas (ex: tentar usar um padrão como DAO para as consultas e alterações de dados no banco), mas não são estritamente necessárias.
Com isso em mente, você precisará, a partir do enunciado, determinar quais classes seriam necessárias para criar esse sistema, e que informações seriam necessárias em cada uma dessas classes. Todas essa informações estão no enunciado, então leia-o atentamente. Por exemplo:
Lendo isso, fica óbvio que você precisa de uma classe para representar uma mercadoria/produto. Consequentemente, ter uma tabela para armazenar esse produto. A questão é: quais atributos/campos seriam necessários nessa classe, e na tabela associada? É só continuar lendo:
O enunciado está dizendo explicitamente que essas informações são necessárias. Portanto, podemos concluir que você precisará desses atributos em sua classe produto, e dos respectivos campos para armazenar esses dados. Mas você ainda precisa determinar o tipo de cada campo. Vamos ver o que dá pra concluir nessa parte:
- código: o código precisa ser único e não pode ser alterado. O ideal seria então que ele fosse gerado automaticamente, em vez de digitado pelo usuário (que dificilmente lembrará quais códigos já usou). Geralmente para isso, se usa uma um tipo gerado automaticamente no banco de dados. Dê uma olhada em como funciona o auto_increment no MySQL;
- descrição: a descrição de um produto pode conter letras, então faz sentido que seja armazenada de forma que permita isso. No Java, um tipo adequado poderia ser String, enquanto que num banco de dados, o tipo varchar deve ser suficiente;
- data de fabricação e data de validade: datas podem ser armazenadas como texto, mas isso pode complicar um pouco a sua vida em comparações. Por isso, pode ser mais coerente usar um tipo de data, como o Date do java e o tipo Date num banco de dados;
- valor: valores geralmente não contém letras, apenas dígitos e vírgulas/pontos decimais. Para armazenar valor de forma simples, é coerente usar um tipo como float no Java (que é suficiente para um exercício) e float, decimal ou numeric no banco de dados;
Note que esses não são todos os atributos necessários. Mais a frente, no enunciado, outros surgem, como categoria (bebida, alimento ou limpeza) e classificação (natural, artifical), dentre outros. Você precisa decidir se prefere armazená-los como texto (a palavra “Bebida”) ou como um identificador (ex: número 1 para indicar que é alimento, 2 para bebida e 3 para limpeza). Se fizer isso, precisará fazer uma conversão quando for exibir isso para o usuário.
Na sequência, você precisará de um meio para armazenar o estoque. Faça análises similares, determinando o que é preciso ou não armazenar.
Com tudo isso em mão, você poderá construir as classes que o sistema precisa, as tabelas necessárias no banco de dados que escolher, e depois as telas para interagir com esses dados.
Acho que deu pra você ter uma ideia do que fazer.
Pois pergunte pra ele os conceitos que tiver dúvida. Não peça respostas pra ele, mas explique o que tentou e se sua abordagem é coerente. Não fique esperando chegar o último dia, nem fique reclamando que ele não explicou tudo que poderia. Você é estudante. Se virar pra conseguir fazer as coisas faz parte.
Não sei recomendar nada específico. Tem tanta coisa na internet, faz uma busca aí por algo como Java Swing com banco de dados, e dê uma olhada nos resultados. Aqui mesmo no fórum deve ter alguma coisa, basta arregaçar as mangas e procurar.
Abraço.