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 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 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.