Estrutura Descrição - Gil Eduardo de Andrade

Propaganda
JTABLE STUDENT CONTROL – JSC
Gil Eduardo de Andrade / Emílio Rudolfo Fey Neto
INTRODUÇÃO / DESCRIÇÃO
O sistema JTable Student Control - JSC disponibiliza uma interface gráfica em
Java que possibilita ao Instituto Federal do Paraná, IFPR – Paranaguá armazenar e
gerenciar digitalmente todas as informações dos seus alunos através da conexão e
interação com o Sistema Gerenciador de Banco Dados MySQL, sendo possível, ainda,
gerenciar posteriormente todas as informações armazenadas, alterando-as quando
preciso e removendo-as se necessário.
O JSC permite que as informações manipuladas sejam armazenadas de forma
consistente, ou seja, ele controla os dados de entrada através da utilização de
componentes gráficos adequados, escolhidos de acordo com os tipos de entrada
dados, ou seja, os campos são formatados para garantir que as informações
especificadas pelo usuário possam ser limitadas e filtradas, não produzindo
armazenamentos incorretos ou duplicados.
Motivação
Atualmente, o armazenamento e a manipulação das informações acadêmicas,
relativas aos alunos inscritos nos diversos cursos oferecidos pelo IFPR – Paranaguá é
feito através da utilização de planilhas eletrônicas. Tal fato dificulta o
gerenciamento e a logística dos profissionais técnicos administrativos que
trabalham na secretaria, bem como dos coordenadores e gestores disciplinares.
Portanto a utilização de um sistema, desenvolvido com intuito de dar suporte a
manipulação dessas informações, permite que as buscas dos alunos sejam feitas,
por cursos, nomes ou disciplinas de forma mais rápida e precisa, além de permitir
que relatórios sejam gerados através de filtros especificados pelos usuários do
sistema.
Desafios
A principal dificuldade no desenvolvimento do JSC está na identificação precisa
de todas as funcionalidades a serem desenvolvidas, visto que a organização atual da
secretaria acadêmica é pouco prática, e os profissionais que ali trabalham possuem
dificuldade em definir os mais elementares requisitos do aplicativo, além de
estarem ainda muito ligados a manipulação e metodologia das planilhas eletrônicas.
Objetivos
O sistema proposto tem como objetivo geral aperfeiçoar o processo de
armazenamento e gerenciamento das informações acadêmicas do IFPR –
Paranaguá. Tendo ainda como objetivos específicos:



Salvar, alterar, remover e disponibilizar todas as informações dos alunos;
Gerar relatório dos alunos: por curso, disciplina e turma;
Gerar gráficos estatísticos com gráficos 2D e 3D;
LISTA DE SÍMBOLOS
?
L
U
A
#
*
‘‘
+
– apenas letras são permitidas
– apenas letras minúsculas são permitidas
– apenas letras maiúsculas são permitidas
– apenas letras e números são permitidos
– apenas números são permitidos
– qualquer tipo de caractere é permitido
– caractere de espaço é permitido
– agrega um novo caractere a permissão
LISTA DE ABREVIATURAS
jcb
jlb
jta
jlt
jsp
ii
jtf
jftf
jb
jp
mf
dlm
dtm
jmb
jm
jmi
jck
jrb
bg
obj
– JComboBox
– JLabel
– JTextArea
– JLits
– JScrollPane
– ImageIcon
– JtextField
– JFormattedTextField
– JButton
– JPanel
– MaskFormatter
– DefaultListModel
– DefaultTableModel
– JMenuBar
– JMenu
– JMenuItem
– JCheckBox
– JRadioButton
– ButtonGroup
– Objeto/Instância de uma Classe
PROTÓTIPO: TELAS DO SISTEMA
CADASTRO DE ALUNOS
Descrição / Funcionalidades
A janela de cadastro de alunos é utilizada para efetuar a adição, atualização,
remoção e visualização de todos os alunos armazenados no banco de dados do
sistema. Um aluno deve possui as seguintes informações: matricula, nome, curso,
turma (ano), data de nascimento e foto.
Layout
Componentes
 jtb_alunos: tabela para visualização de dados, apresenta as informações:
matrícula, nome, curso, ano e data de nascimento. Possibilita que o usuário
selecione apenas um aluno por vez, podendo alterar suas informações ou
removê-lo do banco dados. Ao ser capturado o evento de seleção do aluno, os
dados do mesmo devem ser apresentados nos campos (componentes)
localizados no painel “DADOS DO ALUNO”.
- Tabelas Acessadas:
tb_alunos
 jsp_alunos: barra de rolagem vertical, permite ao usuário visualizar os alunos
que ainda não estão sendo apresentados pela tabela, a barra vertical fica visível
apenas quando a quantidade de alunos a ser apresentada é maior que o espaço
definido para a tabela.
 Jftf_nome: campo formatado de texto para entrada de dados, permite ao
usuário especificar o nome de um aluno, utilizado tanto no processo de
inserção quanto no processo de alteração dos alunos. Permanece desabilitado
durante o processo de visualização/seleção dos alunos, é habilitado mantendo
o seu conteúdo quando uma alteração é escolhida pelo usuário, ou ainda, é
habilitado apagando o seu conteúdo quando uma inserção é escolhida pelo
usuário. O evento de clique (mouse) sobre o campo deve ser capturado, e ao
ocorrer o seu conteúdo deve ser apagado.
- Formatação:
Tamanho:
30 caracteres
Formato:
U+´´
 jcb_curso: caixa de combinação para entrada de dados, permite ao usuário
selecionar um dos cursos pré-definidos no sistema e carregados
dinamicamente. O usuário pode escolher apenas uma das opções
apresentadas, não sendo permitido ao mesmo digitar o nome de um novo
curso, diferente dos apresentados pelo componente.
- Tabelas Acessadas:
tb_cursos
 jftf_ano: campo formatado de texto para entrada de dados, permite ao usuário
especificar a qual turma (ano) pertence um determinado aluno, utilizado tanto
no processo de inserção quanto no processo de alteração dos alunos.
Permanece desabilitado durante o processo de visualização/seleção dos alunos,
é habilitado mantendo o seu conteúdo quando uma alteração é escolhida pelo
usuário, ou ainda, é habilitado apagando o seu conteúdo quando uma inserção
é escolhida pelo usuário. O evento de clique (mouse) sobre o campo deve ser
capturado, e ao ocorrer o seu conteúdo deve ser apagado.
- Formatação:
Tamanho:
4 caracteres
Formato:
####
 jftf_nasc: campo formatado de texto para entrada de dados, permite ao
usuário especificar a data de nascimento para um determinado aluno, utilizado
tanto no processo de inserção quanto no processo de alteração dos alunos.
Permanece desabilitado durante o processo de visualização/seleção dos alunos,
é habilitado mantendo o seu conteúdo quando uma alteração é escolhida pelo
usuário, ou ainda, é habilitado apagando o seu conteúdo quando uma inserção
é escolhida pelo usuário. O evento de clique (mouse) sobre o campo deve ser
capturado, e ao ocorrer o seu conteúdo deve ser apagado.
- Formatação:
Tamanho:
10 caracteres
Formato:
##/##/####
 Jftf_caminho_foto: campo formatado de texto para entrada de dados, permite
ao sistema apresentar o caminho e nome da foto vinculada a um aluno,
permanece o tempo todo desabilitado, modificando seu conteúdo quando o
usuário seleciona um aluno já cadastrado ou, ao cadastrar um novo aluno,
especifica, através de uma janela de navegação pelos diretórios e arquivos da
máquina, o caminho e nome da foto a ser vinculada ao mesmo.
 jb_adicionar: botão para captura de evento, permite ao usuário indicar ao
sistema que um novo aluno será inserido. O botão deve estar visível quando a
janela é exibida, entretanto ao ser acionado (clique) deve tornar-se invisível
juntamente com os botões jb_alterar e jb_remover, sendo apresentados ao
usuário os botões jb_confirmar e jb_cancelar, até então invisíveis. Os campos
jftf_nome, jcb_curso, jftf_ano, jftf_nasc e jb_abrir devem ser habilitados e seu
conteúdo deve ser apagado.
 jb_alterar: botão para captura de evento, permite ao usuário indicar ao
sistema que os dados de um aluno serão alterados. O botão deve estar visível
quando a janela é exibida, entretanto ao ser acionado (clique) deve tornar-se
invisível juntamente com os botões jb_adicionar e jb_remover, sendo
apresentados ao usuário os botões jb_confirmar e jb_cancelar, até então
invisíveis. Os campos jftf_nome, jcb_curso, jftf_ano, jftf_nasc e jb_abrir devem
ser habilitados e seu conteúdo deve ser mantido.
 jb_remover: botão para captura de evento, permite ao usuário indicar ao
sistema que o aluno selecionado deve ser removido. O botão deve estar visível
quando a janela é exibida, e ao ser acionado (clique) uma janela de diálogo
(JOptionPane) pedindo a confirmação da remoção (“Deseja realmente remover
o aluno selecionado?”) deve apresentada ao usuário, esta janela deve conter as
opções: “sim”, o sistema deve então remover o aluno do banco de dados e reatualizar as informações da tabela de visualização (jtb_alunos) – “não”, o
sistema cancela a operação de remoção e volta a sua execução normal –
“cancelar”, o sistema cancela a operação e volta a sua execução normal.
 jb_cancelar: botão para captura de evento, permite ao usuário indicar que um
evento previamente especificado (adicionar / alterar aluno) deve ser
cancelado. O botão deve estar invisível quando a janela é exibida, ao ser
acionado (clique) deve tornar-se novamente invisível juntamente com o botão
jb_confirmar, sendo apresentados ao usuário os botões jb_adicionar, jb_alterar
e jb_remover, que estavam invisíveis. Os campos jftf_nome, jcb_curso, jftf_ano,
jftf_nasc e jb_abrir devem ser desabilitados e seu conteúdo deve ser
preenchido de acordo com o aluno selecionado na tabela de alunos
(jtb_alunos).
 jb_confirmar: botão para captura de evento, permite ao usuário indicar que
um evento previamente especificado (adicionar / alterar aluno) deve ser
confirmar. O botão deve estar invisível quando a janela é exibida, ao ser
acionado (clique) deve tornar-se novamente invisível juntamente com o botão
jb_confirmar, sendo apresentados ao usuário os botões jb_adicionar, jb_alterar
e jb_remover, que estavam invisíveis. Os campos jftf_nome, jcb_curso, jftf_ano,
jftf_nasc e jb_abrir devem ser desabilitados e seus conteúdos devem ser
limpos, o sistema deve então alterar ou adicionar o aluno ao banco de dados,
de acordo com o que foi especificado anteriormente pelo usuário, e então reatualizar os dados a tabela de visualização (jtb_alunos).
 jlb_eventos: rótulo para apresentação de informações, permite ao sistema
mostrar ao usuário qual a funcionalidade de cada um dos botões: jb_adicionar,
jb_alterar, jb_remover, jb_confirmar e jb_cancelar. Ao passar o mouse sobre
esses botões os seguintes textos devem ser apresentados pelo componente:
- jb_adicionar: “Inserir Aluno”
- jb_alterar:
“Alterar Aluno”
- jb_remover:
“Remover Aluno”
- jb_adicionar: “Confirmar Operação”
- jb_adicionar: “Cancelar Operação”
 jb_abrir: botão para captura de evento, permite ao usuário navegar, através de
uma janela, pelos diretórios e arquivos da máquina, selecionando a foto que
deve ser vinculada a um determinado aluno.
 jlb_foto_aluno: rótulo para apresentação de informações, permite ao sistema
mostrar ao usuário a foto que está vinculada a um determinado aluno. Caso o
aluno não possua foto uma imagem padrão deve ser apresentada. Deve ser
alterada sem que o usuário selecionar um aluno na tabela de alunos
(jtb_alunos).
Classes Relacionadas




Visualização:
Controle:
Modelo:
Utilidade:
VCadastroAluno.java
CCadastroAluno.java
MAlunosDAO.java, MAlunos.java, MCursosDAO.java, MCursos.java
Conexão.java
Tabelas Relacionadas
 tb_alunos
 tb_cursos
CLASSES: ESTRUTURA E DESCRIÇÃO
mvc.java: Main
Estrutura
Descrição
Trata-se da classe principal do projeto, possui o método estático void main() da
aplicação, dentro dele é instanciado um objeto da classe VCadastroAluno.java que irá
apresentar a janela inicial do aplicativo.
VCadastroAluno.java: Visualização
Estrutura
Descrição
Trata-se de uma classe de visualização, possui uma relação de herança com a
classe JFrame, sendo a primeira janela a ser invocada pelo aplicativo, para tal seu
construtor instancia e configura todos os componentes gráficos necessários para que
seja possível ao usuário manipular e gerenciar as informações dos alunos cadastrados
no sistema. Todos os eventos desta classe são controlados pela classe
CCadastroAluno.java, por isso uma referência sua é recebida pelo construtor da
CCadastroAluno.java.
CCadastroAluno.java: Controle
Estrutura
Descrição
Trata-se de uma classe de controle, sendo assim implementa os métodos
abstratos das interfaces ActionListener e MouseListener controlando os eventos
gerados pela classe de visualização VCadastroAlunos.java. Possui objetos das classes:
MAlunosDAO.java e MCursosDAO.java que a permitem ter acesso aos dados
armazenados nas tabelas tb_alunos e tb_cursos do banco de dados.
MAlunosDAO.java: Modelo
Estrutura
Descrição
Trata-se de uma classe modelo que tem por objetivo manipular as informações
armazenadas no banco de dados, possui uma relação de herança com a classe
Conexao.java que se encarrega de efetuar e abstrair toda parte de conexão e
transação com o banco. Possui uma lista de objetos da classe MAlunos.java que é
carregada durante a leitura da tabela tb_alunos do banco de dados.
MAlunos.java: Modelo
Estrutura
Descrição
Trata-se de uma classe modelo que tem por objetivo armazenar as informações
carregadas do banco de dados e representar, em tempo de execução, a entidade
aluno. Cada objeto dessa classe tem por objetivo representar uma linha da tabela
tb_alunos.
MCursosDAO.java: Modelo
Estrutura
Descrição
Trata-se de uma classe modelo que tem por objetivo manipular as informações
armazenadas no banco de dados, possui uma relação de herança com a classe
Conexao.java que se encarrega de efetuar e abstrair toda parte de conexão e
transação com o banco. Possui uma lista de objetos da classe MCursos.java que é
carregada durante a leitura da tabela tb_cursos do banco de dados.
Conexão.java: Utilidade
Estrutura
Descrição
Trata-se de uma classe de utilidade, servindo como superclasse para subclasses
que precisam conectar e efetuar transações com o banco de dados. Depende do
pacote mysql-connector.jar, que precisa ser adicionado ao projeto, já que contém o
driver necessário para que comunicação em a aplicação e banco de dados ocorra
corretamente.
Download