Programa do minicurso 1) Identificação: Disciplina: Minicurso Java ­ Interfaces Gráficas Carga Horária: 12 horas­aula Teóricas: 2 Período: Agosto a Setembro de 2015 2) Cursos (público alvo): Ciências da Computação Sistemas de Informação Práticas: 10 3) Requisitos: Compreensão básica de programação orientada a objetos (variáveis, classes, métodos...). 4) Ementa: Enumeradores. Classes abstratas. Interfaces. Callback. Componentes básicos AWT (Abstract Window Toolkit). Padrão Decorator . Orientação a Eventos. Usabilidade de Software. Modelo Observador­Observável. Modelo RGB. Serialização. Double Buffering. 5) Objetivos: Geral: Auxiliar na aprendizagem da disciplina de Programação Orientada a Objetos 2, produzindo um projeto com interface gráfica em Java e uma pequena aplicação de desenho dinâmico com formas geométricas e imagens. Específico: ­ Criar um projeto interativo com enfoque no interfaceamento gráfico e uso de diferentes recursos de programação ( interfaces , eventos, classes abstratas…); ­ Ampliar o desenvolvimento na disciplina de Programação Orientada a Objetos 2; ­ Desenvolver noções de customização e flexibilidade na criação de softwares, tais como: ­ Interfaceamento/Uso de Classes Abstratas; ­ Chamada de métodos de superclasse; ­ Uso de CallBack ’s; ­ Classes/Métodos Anônimos; ­ Demais técnicas para evitar a estaticidade do software. 6) Conteúdo Programático a) Introdução aos componentes AWT. (2 horas) i) Componentes de janela, caixa de texto e botão; ii) Correções básicas: Layout nulo, posição relativa; b) c) d) e) f) iii) MouseListener e ActionListener; iv) Eventos de mouse (Click); v) Modelo de cores RGBA. Personalização de Componentes. (2 horas) i) Serialização; ii) Herança de Componentes AWT; iii) Classes Abstratas. Callbacks. (2 horas) i) Múltiplas janelas; ii) Alternância de Foco e suas consequências; iii) Janelas Modais; iv) Retornando valores de outras janelas. Criação de Componentes Próprios. (2 horas) i) MouseMotionListener; ii) Interfaces; iii) Modelo Assíncrono de Redesenho de Componentes; iv) Técnicas matemáticas para modelamento gráfico de componentes e otimização de tempo de produção. Desenho dinâmico com pacote AWT Graphics. (2 horas) i) Botões Alternados; ii) Aplicação de Enumeradores; iii) Desenho de formas geométricas; iv) Trabalhando com evento de Arraste de Mouse (MouseDrag); v) Double Buffering . Imagens e Geometrias (2 horas) i) Desenho de formas geométricas complexas (polígonos fechados); ii) Leitura de imagens utilizando JFileChooser e ImageIO. 7) Cronograma: a) Primeiro Encontro: i) Introdução aos componentes AWT; ii) Início do projeto com interface gráfica em Java. b) Segundo Encontro: i) Personalização de Componentes. c) Terceiro Encontro: i) Callback; ii) Simplificação e organização do código. d) Quarto Encontro: i) Criação de Componentes Próprios. e) Quinto Encontro: i) Desenho dinâmico com pacote AWT Graphics. f) Sexto Encontro: i) Imagens e Geometrias; ii) iii) Considerações finais a respeito de Interfaces Gráficas em diferentes linguagens, dispositivos e aplicações; Apresentação de sugestões de exercícios para interesse e compreensão por parte dos alunos. 8) Bibliografia: ­ OO Design. Decorator Pattern . Disponível em: < http://www.oodesign.com/decorator­pattern.html >. Acesso em: 13 ago 2015. ­ Java Programming Tutorial. GUI Programming . Disponível em: < https://www3.ntu.edu.sg/home/ehchua/programming/java/J4a_GUI.html >. Acesso em: 13 ago 2015. ­ OO Design. Observer Pattern . Disponível em: < http://www.oodesign.com/observer­pattern.html >. Acesso em: 13 ago 2015. ­ Oracle. Double Buffering and Page Flipping . Disponível em: < https://docs.oracle.com/javase/tutorial/extra/fullscreen/doublebuf.html >. Acesso em: 13 ago 2015.