Aplicação Linguagem de Programação Orientada a Objeto

Documentos relacionados
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Tratamento de Eventos em Programas com GUI - Graphical User Interface. Jorge H. C. Fernandes UFRN Junho de 2001

Programação Java. Construção de Interface gráfica. Processo Básico: OO + Eventos. Exemplo

Aula 12 POO 1 Interface Gráfica no Java. Profa. Elaine Faria UFU

Manipulando Eventos em Java

Aula 15 Interface Gáfica. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Interface Gráfica. Disciplina: Desenvolvimento de Sistemas. Professor: Thiago Silva Prates

Criando interfaces com o usuário. Continuação

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

MANIPULAÇÃO DE EVENTOS

Programação Orientada a Objetos com Java. Prof. Júlio Machado

Agenda. JFC (Java FoundaNon Classes) Interfaces Gráficas: layout manager JFC. Componentes do Swing. Pluggable Look and Feel

Programação II. Cassio Diego

Componentes GUI A aparência e maneira como um usuário pode interagir com componentes AWT diferem de acordo com a plataforma. Componentes Swing permite

Tiago Alves de Oliveira. Tiago Alves de Oliveira

Aula 2 Even e to t s d o M ouse

Elaborando as Interfaces Aulas 31, 32 e 33

Introdução à Programação Gráfica em Java

JAVA. Marcio de Carvalho Victorino. Interface Gráfica em Java (GUI)

Programação Gráfica em Java Alguns Componentes javax.swing

Componentes Parte 01

TIC - Programação Visual. Componentes. Prof. Edwar Saliba Júnior Setembro de Unidade 14 Componentes 1

Interfaces Gráficas (GUIs) em Java usando Swing Parte I - O básico

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

Aula 2 Eventos do Mouse by Pearson Education do Brasil

Interfaces Gráficas com Swing. Professor Leonardo Larback

Processo Básico: OO + Eventos. Java First-Tier: Aplicações. Construção de Interface gráfica. Exemplo. Exemplo. Exemplo. Hierarquia de Composição

TRATAMENTO DE EVENTOS EM JAVA USANDO SWING. George Gomes Cabral

AULA 10 - CCT0024 Linguagem de Programação Objetivos da aula. Janelas para leitura e exibição de textos

Lógica de Programação Estruturada LPE 01 Estrutura Sequencial Parte III

Swing. Page 1. Swing. Prof. Anderson Augustinho Uniandrade

Introdução Interfaces (revisão) Delegação de eventos Tratamento de eventos Classes Adaptadoras Capturando Eventos nos Componentes Swing

Arquivos. Prof. Leonardo Barreto Campos 1

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 1- Interfaces Gráficas com Swing

Aula 11: Interfaces gráficas (1/2): elementos de interface Swing

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 4- Tratamento de Eventos em Interfaces Gráficas

COM220 Aula 17: Interface Gráfica Containers Swing

Java Foundation Classes Coleção de pacotes para criação de aplicações completas Desktop Interfaces gráficas (GUIs- Graphical User Interface)

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

Pacote Java Swing Parte 1

AWT Versus Swing. Java Deployment Course: Aula 5. por Jorge H C Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Recife, 1999

Java Avançado com acesso JDBC a Banco de Dados, Arquivos, Swing e Eventos

JMENU, JDESKTOPPANE E JINTERNALFRAME

JFrame. JLabel : Utilizado como rótulo para exibição de texto e ícones. Interface Gráfica de JAVA - Graphical User Interface (GUI)

Interfaces Gráficas POO. Prof. Márcio Delamaro

Arquitetura de Tratamento de Eventos em Programas com GUI - Graphical User Interface

Linguagem de Programação Visual

Programação Orientada a Objetos

Componentes Parte 02

Gerenciamento de Layout

Componente JOptionPane Layout Null Tratamento de Eventos. Action Listener

JavaBeans. Java Deployment Course: Aula 8. por Jorge H C Fernandes CESAR-DI-UFPE Recife, 1999

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 16, 17, e 18

Entrada e Saída de dados por JOptionPane

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 5- Tratamento de Eventos de Manipulação de textos

Orientação a Objetos

Java First-Tier: Aplicações. Abstract Window Toolkit (AWT) Construção de Interfaces com Swing (I) Swing: Características

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

JAVA. Gerenciadores de Layout. Tiago Alves de Oliveira

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Nona aula

8. Interfaces Gráficas de Usuário

Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 2o. Semestre de 2017 Prof.

Aplicações de Linguagem de Programação Orientada a Objeto

Interfaces Gráficas (GUIs) em Java usando Swing

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 16, 17, e 18

Java. Guia do Programador. Peter Jandl Junior. Novatec

Jframe, JDialog ou JApplet

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 19, 20 e 21

Interface Gráfica com o Usuário (GUI) Profa. Isabel Harb Manssour (Material adaptado das aulas da Profa. Luciana Nedel e do Prof.

Orientação a Objetos

Java AWT Objectos e Eventos. Label Button TextField Checkbox RadioButton Combobox

Modulo I Swing Básico

Java Standard Edition (JSE)

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Interface com o Usuário (UI) UIs Desacopladas (2/3) BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos

Swing Módulo II. Tiago Alves de Oliveira. Tiago Alves de Oliveira 1

Programação Orientada a Objetos II

Exercício 1: Criar um programa que utiliza que desenha uma interface gráfica tal como descrito na Figura 1.1.

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

. Uma instância da classe JTextField gera uma instância da classe ActionEvent quando o objecto está activo e o utilizador pressiona a tecla ENTER.

Layout. Programação Orientada a Objetos Java. Prof. Geraldo Braz Junior. Baseado em material original de João Carlos Pinheiro CEFET/MA

Elaborando as Interfaces dos trabalhos das aulas 28, 29 e 30.

Interface Gráficas Parte I. Bruno Crestani Calegaro

Aplicações Gráficas com AWT

Java Swing: Netbeans

Adding User Interaction

Gerenciadores de Layout

Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de

Módulo 7. Interface Gráfica com o Usuário GUI - Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)

Elaborando as Interfaces dos trabalhos das aulas 25, 26 e 27.

Prof. Fernando V. Paulovich 25 de julho de SCC Programação Orientada a Objetos

Interfaces Gráficas (GUIs) em Java usando Swing

Interface Gráfica - Swing

Interface Gráfica. GUI (Graphic User Interface) AWT e Swing Containers e componentes Layouts. Linguagem Java - Prof. Luciana Porcher Nedel 1

2. Competências Desenvolve sistemas com recurso a OOPs Compreede o conceito de programação paralela Implementa programação em redes de computadores

Elaborando as Interfaces Aulas 43, 44 e 45

Técnicas de Programação

Transcrição:

Aplicação Linguagem de Programação Orientada a Objeto ALPOO 02 - Swing Prof. Msc Wanderley Gonçalves Freitas Agenda Telas de mensagem - apresentar as principais telas de mensagens Containers o conceito de interfaces gráficas Apresentar Swing e AWT Gerenciadores de layout FlowLayout ; BorderLayout ; GridLayout Componentes Apresentar os principais componentes existentes para a construção de uma interface gráfica Manipulação de eventos Listeners e eventos 1 de 53 2 de 53 Objetivo Capacitar o aluno a compreender os conceitos de orientação a objetos e sua utilização no desenvolvimento de interface gráfica(gui) de qualidade na linguagem Java utilizando alguns componentes básicos da biblioteca Swing. Os conceitos de orientação a objetos Conhecer o fundamentos da linguagem Java, como escopo das classes, declaração de variáveis, declaração de métodos, dentre outros conceitos básicos. Telas de mensagens 3 de 53 4 de 53 JOptionPane É utilizado para mostrar mensagens de diálogo para o usuário Permite: Mensagens solicitando entrada de dados Mensagens solicitando resposta à um questionamento Mensagens de informação São pré definidas em constantes da classe JOptionPane PLAIN_MESSAGE INFORMATION_MESSAGE ERROR_MESSAGE WARNING_MESSAGE QUESTION_MESSAGE Métodos de JOptionPane showmessagedialog() -apresenta uma mensagem showinputdialog() -solicita entrada de texto showconfirmdialog() -faz uma pergunta, com botões para Yes, No e Cancel Fica no pacote javax.swing 5 de 53 6 de 53 1

Métodos de JOptionPane Caixa de Entrada Métodos para criação de uma caixa de entrada: JOptionPane.showInputDialog(Component, Object) -> cria uma caixa com Yes/No/Cancel. Retorna um string com a resposta do usuário String nome = null; nome = JOptionPane.showInputDialog("Qual é o seu nome?"); 7 de 53 8 de 53 Caixa de Diálogo de Confirmação Métodos para criação de uma caixa de confirmação: JOptionPane.showConfirmDialog(Component, Object) -> cria uma caixa com Yes/No/Cancel. int resposta; resposta = JOptionPane.showConfirmDialog(null, O seu nome é wanderley?"); Retorna: JOptionPane.YES_OPTION - ( 0) ou JOptionPane.NO_OPTION (1) ou JOptionPane.CANCEL_OPTION (2) que são constantes de classe, tipo inteiro. Caixa de Mensagem Métodos para criação de uma caixa de entrada: JOptionPane.showMessageDialog(Component, Object) não retornam nenhum valor JOptionPane.showMessageDialog(null, Seu nome é wanderley"); int resposta; resposta = JOptionPane.showConfirmDialog(null, "O seu nome é " + nome + "?"); if (resposta == JOptionPane.YES_OPTION) { // resposta == 0 JOptionPane.showMessageDialog(null, "Seu nome é " + nome); } else { JOptionPane.showMessageDialog(null, "Seu nome não é " + nome); } 9 de 53 10 de 53 Roteiro de criação de interfaces gráficas Containers 11 de 53 1) instanciar os componentes de interface janelas, botões, campos de textos, etc 2) adicionar os componentes em containers como os componentes podem ser agrupados qual é o layout de diagramação 3) estabelecer o tratamento de eventos de interface o que deve ocorrer quando o usuário clicar um botão? como alterar o conteúdo de um componente quando um outro sofre alguma alteração? 12 de 53 2

Swing x AWT Swing X AWT: AWT é o conjunto original de componentes visuais de Java. É implementada sobre componentes nativos do sistema operacional. Programas Java rodando em diferentes plataformas possuem aparência diferente. Swing é uma extensão da AWT. Implementado inteiramente em Java. Swing possui a mesma estrutura que os componentes AWT. O pacote Swing apresenta componentes mais flexíveis. As classes Swing são parte de um conjunto mais genérico de capacidades gráficas, chamado de Java Foundation Classes (JFC). Swing Uma interface gráfica em Java é baseada em três elementos: Containers Servem para agrupar e exibir outros componentes. Layout Tem o objetivo de organizar os componentes GUI em um contêiner para fins de apresentação. Componentes São os botões, caixas de texto, barras de rolagem, labels, etc. Pacote javax.swing 13 de 53 14 de 53 Containers Todo programa que oferece uma interface gráfica vai possuir pelo menos um container de mais alto nível, que pode ser: JFrame: janela principal de um aplicativo JDialog: janela para diálogos JApplet: janela para Applets container de nível intermediáriol, que pode ser: Jpanel - Simplificam o posicionamento de outros componentes JScrollPane - Containers JFrame: Um objeto desta classe possui uma barra de título e características para receber menus e outros componentes. JDialog: Usada para definir janelas de diálogo para entrada de dados. Normalmente usada em resposta a uma opção de menu selecionada. Definida em função de um objeto JFrame. JApplet: Classe base para applets Java. É possível desenhar e adicionar menus e outros componentes em um JApplet. 15 de 53 16 de 53 Containers- Content Pane Todo container top-level contém indiretamente um container intermediário denominado contentppane Este content pane contém todos os componentes visíveis n GUI da janela (interface gráfica). Os containers são adicionados ao content pane usando um dos vários tipos de métodos add Exemplo: frame = new JFrame(...); label = new JLabel(...); frame.getcontentpane().add(label, BorderLayout.CENTER); JFrame possue um gerenciador de layout padrão, que é o BorderLayout representa uma janela do sistema nativo possui título e borda pode possuir menu JFrame 17 de 53 18 de 53 3

JDialog JApplet 19 de 53 20 de 53 modela um container sem decoração representa um grupo de elementos normalmente usado para estruturar a interface JPanel Gerenciadores de Layout 21 de 53 22 de 53 Gerenciadores de Layout Tem o objetivo de organizar os componentes GUI em um contêiner para fins de apresentação. Determina o tamanho e posição destes componentes no contêiner. Principais exemplos: FlowLayout, BorderLayout, GridLayout. LayoutManager é responsável pela a apresentação dos componentes se adapta quando do redimensionamento da janela. Tipos de Gerenciadores de Layout Nulo (Posicionamento absoluto) FlowLayout BorderLayout GridLayout 23 de 53 24 de 53 4

Flow Layout FlowLayout À medida que os componentes são acrescentados no container, eles são posicionados em uma linha da esquerda para a direita. O tamanho de cada componente do container é calculado através do seu tamanho preferido (getpreferedsize). Uma nova linha é automaticamente criada quando falta espaço na linha corrente. É o padrão do JPanel. 25 de 53 26 de 53 GridLayout GridLayout Componentes são colocados em uma matriz com um numero específico de colunas ou linhas. Cada componente ocupa exatamente uma célula da matriz. As células são preenchidas da esquerda para direita e do topo para a base. 27 de 53 28 de 53 Border Layout Border Layout Divide um container em cinco regiões: BorderLayout.CENTER BorderLayout.NORTH BorderLayout.EAST BorderLayout.SOUTH BorderLayout.WEST O programador especifica a área na qual um componente deve aparecer. 29 de 53 30 de 53 5

Os principais components do swing São as classes de componentes Swing. Possuem como base a classe JComponent Componentes A partir delas foram criadas inúmeras classes descendentes para construção de interfaces gráficas. 31 de 53 32 de 53 Alguns Componentes GUI Básicos JTable JLabel JTextField JButton JCheckBox JComboBox JList JFrame 33 de 53 34 de 53 JMenuBar, Jmenu, JMenuItem JMenuBar - O container de nível mais alto que pode armazenar menus. Jmenu - Um menu que é criado para mostrar os itens de menu. Menus podem conter outros menus. JMenuItem - Uma entrada em um menu, que pode ser clicado para disparar ações JMenuBar, Jmenu, JMenuItem JMenu JMenuBar JMenuItem 35 de 53 36 de 53 6

Exercício 1 Façam programas em Java que desenhem as seguintes telas com Jframe. Exercício 2 (a) (b) Usando apenas as classes JFrame, JPanel, JButton, JLabel, BorderLayout, GridLayout e FlowLayout, escreva um programa que, ao ser executado, exiba a tela ao lado. Não se preocupe com a funcionalidade do programa. Ou seja, o programa não deve responder aos cliques do usuário. (b) 37 de 53 38 de 53 Eventos: O que são? Manipulação de Eventos Tratamento de eventos(listeners e eventos) São ações dos usuários na interface gráfica. Quando uma ação é executada, eventos são gerados. Eventos são objetos que descrevem o que ocorreu. Existem diversos tipos de classes de eventos para descrever diferentes categorias gerais de ações do usuário. 39 de 53 40 de 53 Listeners e eventos listeners são definidos por interfaces e podem estar aptos a tratar mais de um tipo de evento quando um listener tem um de seus métodos chamados, ele recebe um parâmetro (objeto) que descreve o evento ocorrido existem classes para modelar diferentes grupos de eventos 41 de 53 Tratamento de Eventos As GUIs são baseados em eventos gerados pela interação do usuário. Por exemplo, mover o mouse, clicar no mouse, digitar um campo de texto, fechar uma janela, etc. Tanto os componentes AWT como Swing utilizam os tipos de eventos do pacote java.awt.event. Mas o Swing também tem seus próprios eventos no pacote javax.swing.event. Mecanismo de tratamento de eventos possui três partes: a origem do evento, o objeto evento e o ouvinte (listener) do ouvinte. O programador precisa: Registrar um ouvinte(listener) de evento no componente Implementar um método de tratamento de eventos. 42 de 53 7

Algumas interfaces mais utilizadas: ActionListener FocusListener KeyListener MouseListener WindowListener Tratamento de Eventos Tratamento de Eventos Quando um botão for pressionado, este evento será tratado pela implementação do(s) método(s) da interface ActionListener Cada interface listener de eventos especifica um ou mais métodos de tratamento de evento que devem ser definidos na classe que implementa a interface. 43 de 53 Observação : tratamento de eventos poder ser duas formas classe interna classe anônima 44 de 53 Tratamento de Eventos Classe Interna(Registro de listeners) Tratamento de Eventos Classe Anonima(Registro de listeners) 45 de 53 46 de 53 Usando apenas as classes JFrame, JPanel, JButton, JLabel, BorderLayout, GridLayout e FlowLayout, escreva um programa que, ao ser executado, exiba a tela ao lado. Faça com que o número que aparece no visor seja o número digitado no teclado numérico da aplicação. O botão send deve imprimir no console o conteúdo do visor e o botão end deve apagar o visor. Permita que a aplicação seja termina fechando-se a janela. Obs : tratamento de eventos : classe interna ou classe anônima Exercício 3 Interface de eventos listener Interface Listener Classe Adapter Métodos ActionListener ---------- actionperformed(actionevent) AdjustmentListener --------- adjustmentvaluechanged(adjustmentevent) ComponentListener ComponentAdapter componenthidden(componentevent) componentmoved(componentevent) componentrezised(componentevent) componentshown(componentevent) ContainerListener ContainerAdapter componentadded(containerevent) componentremoved(containerevent) FocusListener FocusAdapter focusgained(focusevent) focuslost(focusevent) ItemListener -------- itemstatechanged(itemevent) KeyListener KeyAdapter keypressed(keyevent) keyreleased(keyevent) keytyped(keyevent) MouseListener MouseAdapte mouseclicked(mouseevent) mouseentered(mouseevent) mouseexited(mouseevent) mousepressed(mouseevent) mouserealesed(mouseevent) MouseMotionListener MouseMotionAdapter mousedragged (MouseEvent) mousemoved(mouseevent) ------ textvaluechange(textevent) TextListener WindowListener WindowAdapter windowactived(windowevent) windowclosed(windowevent) windowclosing(windowevent) windowdeactivated(windowevent) windowdeiconified(windowevent) windowiconified(windowevent) windowopened(windowevent) Prof: Msc. Wanderley Gonçalves Freitas ALPOO 02 - Swing 47 de 53 48 de 53 8

Conclusões AWT e SWING permitem a construção de interfaces gráficas portáveis entre resoluções gráficas e plataformas Modelo de eventos Java é avançado e permite separação clara entre código de negócios e implementação API SWING é realmente OO e permite a construção de aplicações MVC Referências bibliográficas FAEMAN, Julio. Design Patterns Aplicados. Java Magazine, Rio de Janeiro, v. 3, n.20, p. 52 a 58, 2005.. FOWLER, Martin. UMl essencial : um breve guia para a linguagem padrão de modelagem de objetos. Tradução Vera Pezerico e Christian Thomas Prices. 3. ed. Porto Alegre : Bookman, 2005. GRADY, Booch; RUMBAUGH, James;JACOBSON, Ivar. UML, guia do usuário. tradução de Fábio Freitas da Silva. Rio de Janeiro: Editora Campus. 2000. JOHN, Metsker, Steven. Padrões de projeto em java. Porto Alegre: Editora Booklman. 2004. KAZUO, Jorge. Catálogo de Soluções : Padrões de projeto na arquitetura JE22. Java Magazine, Rio de Janeiro, v. 3, n.20, p. 12 a 13, 2005. LOZANO, Fernando. Padrões de Projeto e Classes de Negócio. Java Magazine, Rio de Janeiro, v. 3, n.20, p. 10 a 11, 2005. Cafeína. MENDES, Antonio. Arquitetura de software : desenvolvimento orientado para arquitetura. Rio de Janeiro: Editora Campus. 2002. QUATRANI, Terry. Modelagem visual rational rose 2000 e UML. Rio de Janeiro: Editora Ciência Moderna Ltda. 2001. Scott W. Ambler. The Elements of Java Style. Disponível em: http://www.ambysoft.com/books/elementsjavastyle.html />. Acesso em : 01/12/2008 ;Writing Robust Java Code <http://www.ambysoft.com/downloads/javacodingstandards.pdf/> Acesso em : 01/12/2008 49 de 53 50 de 53 Perguntas Obrigado Wanderley Wanderley.unip@gmail.com www.wg.pro.br 51 de 53 52 de 53 9