Java - Interface Gráfica: Trabalho

De Aulas

Afluentes: Programação em Java

Enunciado

O grupo deve desenvolver um Programa em Java usando Swing e AWT. Cada membro do grupo deve ser responsável por um módulo do programa e todos os módulos devem ter a ver com o programa principal.

Etapas

  1. Definição do programa: propoósito, informações relevantes, relação dos dados e dos módulos;
  2. Separação dos módulos por membro do grupo;
  3. Desenvolvimento dos módulos;
  4. Junção dos Módulos na janela principal;
  5. Antes de terminar a aula, cada grupo deve mostrar para o professor rápidamente o que desenvolveram;
  6. Apresentação do programa na aula seguinte.

Observações

  • Os dados gerenciados pelos usuários, para que possa ser acessado pelos outros módulos (janelas), podem ser colocados em classes estáticas.
  • A Janela principal tem um menu que chama os módulos;
  • A janela principal também também é um módulo que possui informações, mostra dados e tem interação com o usuário e um dos membros do grupo deve ficar responsável pelo desenvolvimento dessa classe;
  • O programa deve utilizar todos os recursos vistos em aulas: Janelas, layouts, checkbox, combobox, listas, diálogos, menus, tabelas, eventos;

Apresentação

As considerações a seguir são usadas como critério de avaliação:

  • Cada aluno será responsável pela apresentação do código do seu módulo e é possível descontar pontos individualmente;
  • O professor pode fazer perguntas individualmente para cada aluno e ele é responsável por respondê-las;
  • Quando explicarem o código, sejam claros e diretos;
  • O código para apresentação não deve conter comentários;
  • O aluno deve apresentar com a webcam ligada. Se não tens webcam, use um celular com aplicativo que simula, tipo o Droidcam;
  • Se algum aluno não desenvolveu sua parte, não descontarei pontos do grupo por isso, apenas o aluno ficará sem nota;

Uso de atributos estáticos

Esse exemplo não é um exemplo de programa, é apenas exemplificando o uso dos atributos estáticos das classes para serem compartilhados pelos módulos do programa.

Classe Pessoa

A Classe pessoa possui dados compartilhados na forma de atributos estáticos

 1import java.util.ArrayList;
 2import java.util.List;
 3
 4public class Pessoa {
 5    // Atributos estáticos são da classe e são compartilhados.
 6    // Observe que eles precisam ser públicos
 7    public static String nome;
 8    public static String CPF;
 9    public static int idade;
10    // Pode ter Lists também
11    public static List<Float> notas = new ArrayList<Float>();  
12}
Classe Cadastro

Essa classe faz a leitura dos dados

 1import java.util.regex.Pattern;
 2
 3import javax.swing.JOptionPane;
 4
 5public class Cadastro {
 6    public static void main(String[] args) {
 7        /*
 8            Veja que para acessar qualquer atributo estático da classe, basta
 9            colocar o nome da classe, seguido de ponto e o nome do atributo
10            estático.
11
12            Cuidado, pois se em qualquer parte do programa esse atributo for
13            modificado, ele é modificado para todos.
14        */
15        Pessoa.nome = JOptionPane.showInputDialog(null, "Digite o nome: ");
16        Pessoa.idade = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite a idade: "));
17        Pessoa.CPF = JOptionPane.showInputDialog(null, "Digite o CPF: ");
18
19        // Vamos pegar vários floats em uma entrada só
20        String notas = JOptionPane.showInputDialog(null, "Digite as notas separado por vírgula: ");
21        // Quebramos a string, com cada valor separado por vírgula e jogamos no List
22        String[] vet = notas.split(Pattern.quote (","));
23        for(String valor:vet) {
24            Pessoa.notas.add(Float.parseFloat(valor));
25         }
26
27        String texto = Pessoa.nome + ", com CPF no. " + Pessoa.CPF + " tem " + Pessoa.idade + " anos";
28        texto += " suas notas são: ";
29        for (Float nota : Pessoa.notas) {
30            texto += nota + ", ";
31        }
32
33        JOptionPane.showMessageDialog(null, texto, "Informações", JOptionPane.OK_OPTION);
34    }
35}