Programação com Acesso a BD. Programação com Acesso a BD



Documentos relacionados
Programação III. Interface Gráfica - Swing. Interface Gráfica Swing Jocélio Passos joceliodpassos@bol.com.br. Interface Gráfica - Swing

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

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

Construção de Interfaces Gráficas

Tratamento de Eventos

8. Interfaces Gráficas de Usuário

Aplicações Gráficas com AWT

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

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

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

Interface Gráficas Parte I. Bruno Crestani Calegaro

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

Técnicas de Programação II

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

Construção de Interfaces Gráficas - Introdução

Fundamentos de GUIs. João Carlos Pinheiro. Última Atualização Junho / 2004 Versão: 3.0

Programação Orientada a Objetos em Java. GUI Graphical User Interface

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

Pacote Java Swing Parte 1

Interface Gráfica 2. E/S pode ser feita por interface gráfica Biblioteca Swing. javax.swing.*

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

INTERFACE COM O USUÁRIO (em Java) Programação Orientada a Objetos

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Caso não exista nenhum listener registado no objecto que gera o evento, este não terá qualquer efeito.

Interface Gráfica. LPG II Java Interface Gráfica AWT. Introdução. AWT - Abstract Window Toolkit

Interface Gráfica. Prof. Marcelo Cohen. (material da Profa. Luciana Nedel) Graphical User Interface (GUI)

Programação Java. Construção de Interfaces com Swing (I)

JFC/Swing. Java Avançado Interface Gráfica JFC/Swing. Introdução JFC / Swing. Introdução JFC / Swing

Curso de Aprendizado Industrial Desenvolvedor WEB

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

Capítulo 12 Eventos de interacção

Programação Orientada a Objetos II

Programação de Interfaces Gráficas. Aula 1. Carlos Eduardo de Carvalho Dantas

Interface Gráfica Swing. Leonardo Gresta Paulino Murta

Linguagem Java - Prof. Luciana Porcher Nedel 1. Um container genérico e visual. Ela trabalha em cooperação com o controle de layouts.

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

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

MÓDULO 4 SWING Parte 3

Curso de Java Módulo II Swing Fábio Mengue Centro de Computação - Unicamp

Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs

Programação Visual em Java

Programação Orientada a Objetos II

API Swing Java. 1. Introdução. 2. Objetivos. 3. Surgimento do Swing. André Scarmagnani 1, Matheus Madalozzo 1, Miguel Diogenes Matrakas 1

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

Java - Swing. Raphaela Galhardo raphaela@j2eebrasil.com.br

O programa abaixo exemplifica o uso da classe Image para carregar e mostrar uma imagem localizada em um arquivo.

Programação Orientada a Objetos

Programação Gráfica em Java.

JCheckbox JRadioButton JComboBox JList JMenu... Alguns componentes já vistos em aula JButton JLabel JTextField

Como construir aplicaçõ e applets

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

1) De acordo com o trecho de código escrito na linguagem JAVA, responda a questão abaixo:

Introdução à Tecnologia Java 02/2012. Java Aula 04 MDI. 05/09/2012 Celso Olivete Júnior.

Desenvolvimento de Aplicações Desktop

Interface Gráfica. Prof. Marcelo Cohen

Curso Java Starter. 1

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

Programação Orientada a Objetos Flávio de Oliveira Silva 217

1 Criando um aplicativo visual em Java

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

Eclipse IDE Dá-se importância aos antepassados quando já não temos nenhum. Francois Chateaubriand

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

Desenvolvendo aplicações

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

Is Event Dispatcher Threade (Animation)

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

Programação por Objectos. Interfaces gráficas. Swing 1/52

Especialização em Engenharia de Software - CEUT

Interfaces Gráficas (GUIs) em Java usando Swing

Criação de Applets Package: Class Name Base Class: Generate header comments: Can run standalone: Generate Standard methods:

Gestão de eventos do Rato e teclado

Jframe, JDialog ou JApplet

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: imagecomposite FACULDADE DE TECNOLOGIA SENAC PELOTAS

JTABLE STUDENT CONTROL JSC Gil Eduardo de Andrade / Emílio Rudolfo Fey Neto

Capítulo 31. Outros Recursos para Interfaces Gráficos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

// Scribble1.java - Modelo de tratamento de eventos 1.1

Adicionando Caixas de Verificação no seu Programa Java

{ System.exit(0); Exemplo (WindowAdapter) import java.awt.*; import java.awt.event.*;

Gerenciadores de Layouts

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

CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA A F B G C H D I

Dados em Java. Componentes GUI Parte I

Arquivos. Prof. Leonardo Barreto Campos 1

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Componentes Parte 02

JAVA APLICAÇÕES GRÁFICAS Propriedade Utilizada: FontSizeAnimation

Interfaces Gracas em Java

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: Resize Shape Basic Shape FACULDADE DE TECNOLOGIA SENAC PELOTAS

GERADOR DE CÓDIGO JAVA A PARTIR DE ARQUIVOS DO ORACLE FORMS 6I

Criação de Applets com o JBuilder Professor Sérgio Furgeri

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

Exercícios 07 Introdução à POO (Interface Gráfica)

JFC/Swing. LPGII - Java Interface Gráfica JFC/Swing. Introdução JFC / Swing. Introdução JFC / Swing

Interfaces Gráficas: Interações Complexas

Roteiro para criação de Applet

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Programando GUIs

Sumário Introdução à 3a. Edição Introdução Dia 1 - Conceitos Iniciais Dia 2 - Bem-vindo ao Mundo Real... 43

Transcrição:

Programação com Acesso a BD Curso: Técnico em Informática Campus: Ipanguaçu Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com Acesso a BD Há apenas uma pequena distância entre criatividade e insanidade. O que impede as idéias criativas é o demônio crítico da mente que prematuramente as considera impossíveis M. P. J. 1

Programação com Acesso a BD Unidade VII: Criando Interfaces Gráficas em Java Pacote AWT Pacote utilizado para construir GUIs (Graphical User Interfaces) Classes AWT podem se dividir em: Componentes Layouts Classes Utilitárias 2

Aplic. Standalone x Applets Aplic. Standalone Método Interessante: main() Applets Métodos Interessantes: init() start() stop() destroy() Criando Interfaces Gráficas Criar os containers; Adicionar os componentes de interface; Posicionar os componentes (lay out); Adicionar funcionalidade (Manipulação de Eventos). 3

Exemplo - Adicionando um Botão Botão Botão Panel Applet Frame Exemplo import java.awt.*; import java.applet.applet; public class Exemplo1 extends Applet { Button hibutton; public void init() { hibutton = new Button( Click Me! ); add(hibutton); 4

Exemplo import java.awt.*; public class ExFrame { Frame f = new Frame("Meu Frame"); Panel p = new Panel(); Button b = new Button("OK"); ExFrame() { p.add(b); f.add(p); f.setsize(400,200); f.setvisible(true); public static void main(string argv[]) { new ExFrame(); Exemplo Panel 200 400 5

Componentes Elementos de interface apresentados aos usuários. Podem ser programados para reagir a interações com usuários (Manipulação de Eventos) A maioria dos componentes são derivados da classe Component, com exceção da classe MenuComponent. Observação A Classe Component é uma classe abstrata, que define elementos comuns a todos os componentes, como fonte, cor, pintura, forma e manipulação de eventos. Por ser abstrata, não pode ser instanciada. 6

Árvore da Classe Component Component Button Canvas Checkbox Container Label List TextComponent Scrollbar Choice Panel Window Scrollpane TextArea TextField Applet Java.applet Dialog Frame FileDialog Observações Todo item visível do AWT é subclasse de Component. Isto permite que métodos sejam utilizados da mesma forma para todos os componentes, como, por exemplo, mudar a cor de fundo. Tudo no AWT é direcionado a eventos. O estilo de programação é, então, nãolinear. Componentes podem ser colocados na página tanto em posição absoluta quanto relativa. 7

Observações Uma classe em um pacote pode ser subclasse de uma superclasse em outro pacote. Por exemplo: O caso da classe Applet, que pertence ao pacote java.applet, mas é subclasse de Panel, que pertence ao pacote java.awt. Componentes Componentes Simples Componentes de Texto Containers 8

Componentes Simples Button Checkbox Choice List Label List Button Classe: java.awt.button; Construtor: Button() Button(String label) Métodos: String getlabel() void setlabel(string label) Exemplo: Button abutton = new Button( Ok ); 9

Checkbox Classe: java.awt.checkbox; Valor Inicial Construtor: Checkbox() Checkbox(String label) Checkbox(String label, boolean s) Checkbox(String label, boolean s, CheckboxGroup g); Métodos Principais: String getlabel() void setlabel(string label) boolean getstate() void setstate(boolean s) CheckboxGroup getcheckboxgroup() void setcheckboxgroup(checkboxgroup g) Checkbox (cont.) Exemplo: Checkbox cbcadastrar = new Checkbox( Show ); cbcadastrar.setstate(true);... if (cbcadastrar.getstate()) { cbcadastrar.setlabel( Show1 ); 10

Checkbox & Radio Button Checkbox Selecionar mais de um elemento de cada vez Não necessita de CheckboxGroup Radio Button Selecionar apenas um elemento de cada vez Necessita de CheckboxGroup Checkbox & Radio Button Exemplo: Checkbox cbpoupanca = new Checkbox( Poupanca ); Checkbox cbconta = new Checkbox( Conta Corrente ); CheckboxGroup chtipoconta = new CheckboxGroup(); cbpoupanca.setcheckboxgroup(chtipoconta); cbconta.setcheckboxgroup(chtipoconta); 11

Choice List Classe: java.awt.choice; Construtor: Choice() Métodos Principais: void additem(string item) int getitemcount() void remove(int ind) String getitem(int ind) String getselecteditem() void select(int ind) Choice List (cont.) Exemplo: Choice chtipoconta = new Choice(); chtipoconta.additem( Poupanca ); chtipoconta.additem( Conta Normal ); chtipoconta.additem( Conta Especial ); chtipoconta.select("conta Normal"); String tipoconta = chtipoconta.getselecteditem(); if (tipoconta.equals("conta Normal")){ Conta c = new ContaNormal(123, null); 12

Label Classe: java.awt.label; Construtor: Label() Label(String label) Label(String label, int alin) Métodos: int getalignment() void setalignment(int alin) String gettext() void settext(string texto) Label Exemplo: Label alabel = new Label( Hello, Label.CENTER); 13

Scrolling List Multiselect Classe: java.awt.list; Construtores: List(int num, boolean mult) List() Número de Opções Métodos Principais: String getitem(int indice) void additem(string label) Exemplo: List l = new List(3); l.additem( Domingo ); l.additem( Segunda ); l.additem( Terça ); l.additem( Quarta ); Scrolling List (cont.) Valor de Multiselect: true: Permite a seleção de mais de uma opção ao mesmo tempo. false: Permite a seleção de apenas uma opção. 14

Componentes de Texto Textfield Uma linha e n colunas TextArea n linhas e m colunas TextField Classe: java.awt.textfield; Construtor: TextField() TextField(int cols) TextField(String texto) TextField(String texto, int cols) Métodos: int getcolumns() String gettext() void settext(string texto) Exemplo: TextField atf = new TextField( 37, 4); 15

TextArea Classe: java.awt.textarea; Construtor: TextArea() TextArea(int lin, int cols) TextArea(String texto) TextArea(String texto, int lin, int cols) Métodos: int getcolumns() e int getrows() String gettext() void settext(string texto) Exemplo: TextArea ata = new TextArea( Ok, 5, 40); Exemplo TextField tfcontad = new TextField(); tfcontad.settext(""); String numconta = tfcontad.gettext();... TextArea atextarea = new TextArea("Ok", 5, 40); atextarea.settext(""); String numconta = atextarea.gettext(); 16

Container Componente que pode conter outros componentes, inclusive outro container. Principais containers: Panel ScrollPane Window Lembrete A classe Applet é subclasse de Panel, logo um Applet deve ser tratado como um panel Panel Normalmente utilizados para agrupar componentes em uma área específica da tela. Um applet é um tipo especial de Panel com propriedades adicionais relativas às implementações de browsers. 17

ScrollPane Um tipo especial de container. Este componente pode receber um conteúdo até maior do que a área do próprio ScrollPane. Neste caso, barras de rolagem (Scrollbars ) são disponibilizados. Window Esta classe encapsula as janelas de alto nível. A classe Window representa uma janela simples, sem barra de título e sem bordas. Suas subclasses oferecem títulos, ícones e funções de controle, como minimizar, maximizar e fechar. Estas subclasses são: Frame e Dialog. 18

Classe Frame Construtores: Frame() Frame(String) Principais métodos: void add() void setsize() void settitle(string) setvisible(boolean) Exemplo import java.awt.*; public class ExFrame { Frame f = new Frame("Meu Frame"); Panel p = new Panel(); Button b = new Button("OK"); ExFrame() { p.add(b); f.add(p); f.setsize(400,200); f.setvisible(true); public static void main(string argv[]) { new ExFrame(); 19

Exemplo Panel 200 400 Classe Dialog Construtores: Dialog(Frame, String, boolean) Dialog(Dialog, String, boolean) Subclasse: FileDialog Exemplo: Dialog d = new Dialog(f,"Atenção", true); Modal 20

Exemplo Dialog import java.awt.*; public class ExDialogModal { Frame f = new Frame("Meu Frame"); Panel p = new Panel(); Button b = new Button("OK"); java.awt.dialog d; ExDialogModal() { f.add(p); f.setsize(400,200); f.setvisible(true); d = new Dialog(f,"Aviso",true); b.setbounds(40,70,57,24); d.add(b); Exemplo Dialog d.setlayout(null); java.awt.dimension screensize = java.awt.toolkit.getdefaulttoolkit().getscreensize(); d.setbounds((screensize.width-400)/2, (screensize.height-300)/2, 400, 300); d.show(); public static void main(string argv[]) { new ExDialogModal(); 21

Exemplo Dialog Classe FileDialog Janela completa para seleção de arquivo e diretório. Construtor: FileDialog(Frame, String, int) Métodos: String getfile() String getdirectory() 22

Exemplo FileDialog import java.awt.*; public class ExDialog { Frame f = new Frame("Meu Frame"); Panel p = new Panel(); Button b = new Button("OK"); FileDialog d; String nome; ExDialog() { p.add(b); f.add(p); f.setsize(400,200); f.setvisible(true); Exemplo FileDialog d = new FileDialog(f,"Abrir Arquivo", FileDialog.LOAD);// (SAVE) d.show(); //d.setvisible(true); nome = d.getfile(); System.out.println(nome); public static void main(string argv[]) { new ExDialog(); 23

Exemplo FileDialog Exemplo - MenuBar MenuBar menuprinc = new MenuBar(); this.setmenubar(menuprinc); Menu cadastro = new Menu("Cadastro"); Menu estoque = new Menu("Estoque"); Menu ajuda = new Menu("Ajuda"); MenuItem segmento = new MenuItem("Segmento"); MenuItem produto = new MenuItem("Produto"); MenuItem estoque1 = new MenuItem("Estoque"); MenuItem fornecedor = new MenuItem("Fornecedor"); MenuItem sair = new MenuItem("Sair"); MenuItem sobre = new MenuItem("Sobre"); 24

Exemplo - MenuBar cadastro.add(estoque1); cadastro.add(fornecedor); cadastro.add(produto); cadastro.add(segmento); ajuda.add(sair); ajuda.add(sobre); menuprinc.add(cadastro); menuprinc.add(estoque); menuprinc.add(ajuda); menuprinc.sethelpmenu(ajuda); Exemplo - MenuBar import java.awt.*; public class ExFrameMenu { Frame f = new Frame("Meu Frame"); Panel p = new Panel(); Button b = new Button("OK"); ExFrameMenu() { MenuBar menuprinc = new MenuBar(); f.setmenubar(menuprinc); Menu cadastro = new Menu("Cadastro"); Menu estoque = new Menu("Estoque"); Menu ajuda = new Menu("Ajuda"); MenuItem segmento = new MenuItem("Segmento"); MenuItem produto = new MenuItem("Produto"); MenuItem estoque1 = new MenuItem("Estoque"); MenuItem fornecedor = new MenuItem("Fornecedor"); MenuItem sair = new MenuItem("Sair"); MenuItem sobre = new MenuItem("Sobre"); 25

Exemplo - MenuBar cadastro.add(estoque1); cadastro.add(fornecedor); cadastro.add(produto); cadastro.add(segmento); ajuda.add(sair); ajuda.add(sobre); menuprinc.add(cadastro); menuprinc.add(estoque); menuprinc.add(ajuda); menuprinc.sethelpmenu(ajuda); p.add(b); f.add(p); f.setsize(400,200); f.setvisible(true); Exemplo - MenuBar public static void main(string argv[]) { new ExFrameMenu(); 26

Exemplo - MenuBar Eventos O que são Eventos. Componentes + Eventos = Interação 27

Manipulação de Eventos Os eventos são gerados e ficam disponíveis para a aplicação ou applet. Eventos são propagados a partir dos componentes para os objetos listeners. O objeto listeners deve registrar quais eventos interessam à aplicação. Eventos Registrar Listeners addactionlistener() actionperformed() Objeto Listener 28

Modelo de Tratamento de Eventos Modelo de Delegação de Evento Uso de uma escuta de evento no tratamento do evento Processa o evento delegado para o objeto particular Quando um evento ocorrre Componente GUI notifica sua escuta Chama o método que trata o evento escutado Classe AWTEvent AWTEvent ComponentEvent FocusEvent InputEvent WindowEvent KeyEvent MouseEvent 29

Classe AWTEvent java.lang.object Hierarquia das Classes AWT.event java.util.eventobject java.awt.awtevent ActionEvent AdjustmentEvent ItemEventl ComponentEvent ContainerEvent FocusEvent PaintEvent WindowEvent InputEvent Nome da Classe Nome da Interface KeyEvent MouseEvent Classe AWTEvent Interfaces do Pacote AWT.event ActionListener java.lang.object java.util.eventlistener AdjustmentListener ComponentListener ContainerListener FocusListener ItemListener KeyListener MouseListener MouseMotionListener Nome da Classe Nome da Interface TextListener WindowListener 30

Exemplo - ActionListener public class ExFileDialog implements ActionListener { Frame f = new Frame("Meu Frame"); Panel p = new Panel(); Button b = new Button("OK"); FileDialog d; String nome; ExFileDialog() { b.addactionlistener(this); p.add(b); f.add(p); f.setsize(400,200); f.setvisible(true); public static void main(string argv[]) { new ExFileDialog(); public void actionperformed(actionevent e) { d = new FileDialog(f,"Abrir Arquivo",FileDialog.LOAD); d.setvisible(true); nome = d.getfile(); System.out.println(nome); Exemplo - ActionListener public class TestList extends Applet implements ActionListener { Button b; TextArea t; List l; public void init() { b = new Button("Checar"); t = new TextArea(5,10); l = new List(4,false); b.addactionlistener(this); l.additem("um"); l.additem("dois"); l.additem("três"); l.additem("quatro"); add(b); add(l); add(t); public void actionperformed(actionevent e) { String buttoncommand = e.getactioncommand(); if (buttoncommand.equals("checar")) { Object[] ao = l.getselectedobjects(); for(int i=0;i<=array.getlength(ao)-1;i++) { t.append(ao[i].tostring()+ \n ); 31

Exemplo - MouseListener public class ExFrame implements MouseListener { Frame f = new Frame("Meu Frame"); Panel p = new Panel(); Button b = new Button("OK"); ExFrame() { p.add(b); f.add(p); f.setsize(400,200); p.addmouselistener(this); f.setvisible(true); public static void main(string argv[]) {new ExFrame(); public void mousepressed(mouseevent e) { System.out.println(e.toString()); public void mouseentered(mouseevent e) { System.out.println(e.toString()); public void mouseclicked(mouseevent e) { System.out.println(e.toString()); public void mousereleased(mouseevent e) { System.out.println(e.toString()); public void mouseexited(mouseevent e) { System.out.println(e.toString()); Exemplo - MouseMotionListener public class ExFrame3 implements MouseMotionListener { Frame f = new Frame("Meu Frame"); Panel p = new Panel(); Button b = new Button("OK"); ExFrame3() { p.add(b); f.add(p); f.setsize(400,200); p.addmousemotionlistener(this); b.addmousemotionlistener(this); f.setvisible(true); public static void main(string argv[]) { new ExFrame3(); public void mousemoved(mouseevent e) { System.out.println(e.toString()); public void mousedragged(mouseevent e) { System.out.println(e.toString()); 32

Exemplo - KeyListener import java.awt.*; import java.awt.event.*; public class ExFrame4 implements KeyListener { Frame f = new Frame("Meu Frame"); Panel p = new Panel(); Button b = new Button("OK"); ExFrame4() { p.add(b); f.add(p); f.setsize(400,200); p.addkeylistener(this); b.addkeylistener(this); f.setvisible(true); public static void main(string argv[]) { new ExFrame4(); public void keyreleased(keyevent e) { System.out.println(e.toString()); public void keypressed(keyevent e) { System.out.println(e.toString()); public void keytyped(keyevent e) { System.out.println(e.toString()); Conversão de Tipos double valor = c.saldo(); String valorstr = String.valueOf(valor);... String valorstr = tfvalor.gettext(); double valor=double.valueof(valorstr).doublevalue();... Integer i = new Integer(1); System.out.println(i.toString());... String line = 3 ; int i = Integer.parseInt(line);... line = Integer.toString(i);... Integer valor = Integer.getInteger(line); 33

Eventos de Mouse As interfaces que tratam eventos de mouse são MouseListener e MouseMotionListener public void mousepressed( MouseEvent e ) public void mouseclicked( MouseEvent e) public void mousereleased( MouseEvent e) public void mouseentered( MouseEvent e) public void mouseexited( MouseEvent e) public void mousedragged( MouseEvent e) public void mousemoved( MouseEvent e) mouse é pressionado. pressionado ou "released" sem mover "released" após ser arrastado (dragged). entra no componente. sai do componente. pressionado e movido. movido sobre o componente Classe Adapter para Eventos de Mouse Muitas das interfaces event-listerner têm vários métodos. Nem sempre é desejável definir todos os métodos da interface. O pacote java.awt.event oferece classes adapter event-listerner. Toda interface com mais de um método tem sua classe adapter correspondente. A classe adapter provê uma implementação default de todos os métodos da interface. 34

Classes Adapter Classe adapter ComponentAdapter ContainerAdapter FocusAdapter MouseAdapter MouseMotionAdapter KeyAdapter WindowAdapter Implementa ComponentListener ContainerListener FocusListener MouseListener MouseMotionListener KeyListener WindowListener Diferença Entre os Botões do Mouse ismetadown() Este método retorna true quando o usuário clica com o botão direito de um mouse com dois ou três botões. Para simular um click com este botão o usuário pode pressionar Meta e click o mouse. isaltdown() Este método retorna true quando o usuário clica com o botão do centro dou mouse em um mouse de três botões. Para simular um click com este botão o usuário pode pressionar alt e click o mouse. 35

Eventos do Teclado Interface KeyListener define os seguintes métodos public void keypressed( KeyEvent e ) public void keyreleased( KeyEvent e) public void keytyped( KeyEvent e) tecla é pressionada. tecla liberada "released" tecla digitada isactionkey() Método para determinar se a tecla do evento é uma tecla de ação. Interfaces Gráficas com Swing Swing 36

Interfaces Gráficas com Swing O pacote AWT que baseia-se na biblioteca gráfica de cada plataforma mostrou-se problemática: Os componentes tinham diferenças sutis de comportamento Algumas plataformas não possuíam uma coleção muito boa de componentes gráficos impossibilitando a criação de componentes Haviam erros na implementação da biblioteca gráfica de diferentes plataformas Escreva uma vez, debug em todo lugar! Interfaces Gráficas com Swing O pacote Swing surgiu numa parceria com a Netscape como alternativa para solucionar esses problemas. No caso da biblioteca Swing os componentes são desenhados em cima de uma janela em branco. Como o desenho e o comportamento são implementados pela própria JVM em cima de quadros é possível manter o mesmo comportamento e aparência em todas platafortmas. 37

Interfaces Gráficas com Swing Interfaces Gráficas com Swing A interface Swing apresenta vantagens: Apresenta um conjunto mais rico e conveniente de elementos para a GUI Depende muito menos da plataforma subjacente, sendo menos sujeito a erros específicos. Manutenção do mesmo padrão de interface entre plataformas E desvantagens: A interface é mais lenta de aparecer As aplicações Java podem ter aparência diferente das demais aplicações 38

Componentes Swing As classes Swing estão no pacote javax.swing A maior parte dos componentes AWT possuem componentes equivalente Swing com nome iniciado por J. Ex: Button e JButton, Panel e JPanel... O componente JFrame é um dos poucos em Java que não é desenhado em um quadro, mas usado uma janela equivalente da plataforma subjacente. Componentes Swing Component Container JComponent Window JButton JScrollbar JTree JLabel JList Frame Dialog JComboBox JPanel JTable JMenuBar JFrame JDialog JCheckBox JFileChooser JOptionPane JTextArea JTextField JScrollPane 39

Componentes Swing Componentes Swing Os componentes básicos possuem comportamento análogo aos equivalentes AWT: Swing JPanel JTextField JTextArea JLabel JScrollPane JMenuBar AWT Panel TextField TextArea Label ScrollPane MenuBar 40

Swing top-level containers Possuem um JRootPane onde devem ser inserido todos os componentes Todos os componentes devem ser inseridos no content pane. Exemplo: frame.getcontentpane().add(child); Swing top-level containers: JFrame e JDialog Swing top-level containers 41

Swing top-level containers Swing Exemplo import javax.swing.*; public class HelloWorldSwing { public static void main(string[] args) { JFrame frame = new JFrame("HelloWorldSwing"); final JLabel label = new JLabel("Hello World"); frame.getcontentpane().add(label); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.pack(); frame.setvisible(true); pack() causes a window to be sized to fit the preferred size and layouts of its sub-components 42

Swing Exemplo import javax.swing.*; public class HelloWorldFrame extends JFrame { public HelloWorldFrame() { super( HelloWorldSwing ); final JLabel label = new JLabel("Hello World"); getcontentpane().add(label); setdefaultcloseoperation(jframe.exit_on_close); pack(); setvisible(true); public static void main(string[] args) { HelloWorldFrame frame = new HelloWorldFrame(); Swing Exemplo Object[] options = {"Yes!", "No, I'll pass", "Well, if I must"; int n = JOptionPane.showOptionDialog( frame, "Duke is a cartoon mascot. \n" + "Do you still want to cast your vote?", "A Follow-up Question", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[2]); 43

Swing Exemplo Button Label Menu Menu bar Text field jdk1.x.y/demo/jfc/swingapplet jdk1.x.y/demo/jfc/swingset2 http://java.sun.com/docs/books/tutorial/uiswing/components/exam ples/index.html#listdemo Classes do Pacote Swing Component define métodos que podem ser usados nas suas subclasses (Ex: paint and repaint) Container coleção de componentes relacionados Quando usado com JFrames, attach componentes para o painel (a Container) Método add JComponent superclass da maioria dos componentes Swing Muitas das funcionalidades dos componentes são herdadas dessa classe 44

Subclasses de JComponent Aparência e Comportamento uniforme em todas as plataformas Acesso direto aos componentes pelo teclado Teclas de atalho Tratamento de evento comum Se os componentes realizam as mesmas ações Dicas da ferramenta Descrição do componente que aparece quando o mouse fica sobre ele. Principais Componentes Swing Mostra Informações não Editáveis Label Progress Bar Tool Tips 45

Demonstração da JLabel import java.awt.*; import javax.swing.*; public class JLabelDemo extends Japplet { JLabel label1, label2, label3; Icon icon; Container c; public void init() { c = getcontentpane(); c.setlayout( new GridLayout(3,1) ); label2.setverticaltextposition(swingconstants.bottom); label2.sethorizontaltextposition(swingconstants.center); label2.sethorizontalalignment( SwingConstants.CENTER ); label3 = new JLabel(icon); label3.settooltiptext("este é o Label 3"); c.add(label1); c.add(label2); c.add(label3); icon = new ImageIcon("middle.gif"); label1 = new JLabel("Este Label tem Texto e Imagem", icon, SwingConstants.LEFT ); label1.settooltiptext("este é o Label 1"); label2 = new JLabel("Este Label tem Texto embaixo"); label2.settooltiptext("este é o Label 2"); label2.seticon(icon); Principais Componentes Swing Controles Básicos Buttons Combo Box List Menu Slider Textfield 46

Demonstração Controles Básicos import java.awt.*; import javax.swing.*; public class Swing_Basico extends JApplet { JLabel label1, label2; JTextField text1, text2; JPasswordField password; JButton but1, but2; Icon icon1; Container c; public void init() { c = getcontentpane(); c.setlayout ( new FlowLayout() ); icon1 = new ImageIcon("left.gif"); label2 = new JLabel( "Enre com password: "); password = new JPasswordField( "Texto Escondido" ); but1 = new JButton("Click", icon1); but2 = new JButton("Exit"); c.add(label1); c.add(text1); c.add(label2); c.add(password); c.add(but1); c.add(but2); label1 = new JLabel( "Entre com texto: "); text1 = new JTextField( 10 ); Principais Componentes Swing Container de Propósito Geral Panel Split Pane Scroll Pane Tool Bar Tabbed Pane 47

Principais Componentes Swing Dispaly Editável de Informações Formatadas Color Choose File Choose Table TextArea Tree Principais Componentes Swing Container de Alto Nível Applet Caixa de Dialogo Frame 48

Principais Componentes Swing Container de Propósito Especial Internal Frame Layered Pane Root Pane Link JCheckBox e JRadioButton Botões de Estado JToggleButton Subclasses JCheckBox, JRadioButton Tem valores on/off (true/false) Class JCheckBox Texto aparece a direita do checkbox Construtor JCheckBox mybox = new JCheckBox( "Title" ); 49

JCheckBox Quando JCheckBox muda de estado Gera ItemEvent Tratado por um ItemListener, deve definir o método itemstatechanged O handlers é registrado com o método additemlistener Class ItemEvent getstatechange() Returns ItemEvent.SELECTED or ItemEvent.DESELECTED JCheckBox Utilização JTextField Method settext( fontobject ) new Font( name, style_constant, size ) style_constant - FONT.PLAIN, BOLD, ITALIC Can add to get combinations Exemplo Use JCheckBox para trocar a fonte do JTextField 50

Exemplo JRadioButton Radio buttons Tem dois estados: selecionado e não selecionado Normalmente utilizado como um grupo Somente um radio button no grupo pode ser selecionado de cada vez Selecionando um força os outros para off Opções mutuamente exclusivas ButtonGroup mantém o relacionamento lógico entre os botões Classe JRadioButton Construtor JRadioButton( "Label", selected ) If selected true, JRadioButton initially selected 51

JRadioButton Classe JRadioButton Gera ItemEvents (como JCheckBox) Classe ButtonGroup ButtonGroup mygroup = new ButtonGroup(); Interliga radio buttons em relacionamentos lógicos Método add Associa um radio button com um grupo mygroup.add( myradiobutton ) Exemplo 52

JComboBox Combo box (drop down list) Lista de itens, usuário faz uma seleção Classe JComboBox Gera ItemEvents JComboBox Construtor JComboBox ( arrayofnames ) Índice numérico recupera os elementos Primeiro elemento é adicionado no índice 0 Primeiro ítem adicionado aparece como ítem previamente selecionado JComboBox Métodos de JComboBox getselectedindex() Retorna o índice do item selecionado mycombobox.getselectedindex() setmaximumrowcount( n ) Seta o número máximo de elementos para mostrar quando o usuário click na combo box Scrollbar é automaticamente inserida setmaximumrowcount( 3 ) Exemplo Use JComboBox para setar um Icon para um JLabel 53

JList List Mostra uma série de itens, pode selecionar um ou mais Classe JList Construtor JList( arrayofnames ) array de Objetos (Strings) é mostrado na lista setvisiblerowcount( n ) Mostra n itens de cada vez Não insere automaticamente scrolling JList Objeto JScrollPane usado para scrolling 40 c.add( new JScrollPane( colorlist ) ); Takes component to which to add scrolling as argument Adiciona um objeto JScrollPane para content pane Métodos JList setselectionmode( selection_constant ) SINGLE_SELECTION Um item selecionado de cada vez SINGLE_INTERVAL_SELECTION Lista de seleção múltipla, permite itens contínuos serem selecionados MULTIPLE_INTERVAL_SELECTION Lista de seleção múltipla, qualquer item pode ser selecionado 54

JList Métodos JList getselectedindex() Retorna o índice do ítem selecionado Event handlers Implementa interface ListSelectionListener (javax.swing.event) Define método valuechanged() Registre handler com addlistselectionlistener Exemplo Use uma JList para selecionar a cor de background Exemplo 55

Listas com Múltiplas Seleções Listas com Mútiplas seleções SINGLE_INTERVAL_SELECTION Seleciona um grupo de ítens contínuos mantendo a tecla Shift pressionada MULTIPLE_INTERVAL_SELECTION Seleciona qualquer quantidade de ítens Pressione a tecla Ctrl e click cada item selecionado Métodos de JList getselectedvalues() Retorna um array de Objetos representando os itens selecionados setlistdata( arrayofobjects ) Seta itens de JList para elementos no arrayofobjects Listas com Múltiplas Seleções Métodos de JList setfixedcellheight( height ) Especifica a altura em pixels de cada item na JList setfixedcellwidth( width ) Como acima, especifica a largura da lista Exemplo Tem duas listas de múltiplas seleções Botão Copy copia itens selecionados na primeira lista para outra 56

Exemplo JTree Implementa uma visão de uma árvore. Utiliza o modelo TreeModel Object getchild(object parent, int index) int getchildcount(object parent) int getindexofchild(object parent, Object child) Object getroot() boolean isleaf(object node) void valueforpathchanged(treepath path, Object newvalue) A implementação default de TreeModel é DefaultTreeModel 57

JTree JTable Implementa a visão de uma tabela Utiliza o modelo TableModel: int getcolumncount() String getcolumnname(int columnindex) int getrowcount() Object getvalueat(int rowindex, int columnindex) boolean iscelleditable(int rowindex, int columnindex) void setvalueat(object avalue, int rowindex, int columnindex) A implementação default de TableModel é DefaultTableModel 58

JTable JFileChooser Implementa um mecanismo de para selecionar um arquivo: JFileChooser chooser = new JFileChooser(); ExampleFileFilter filter = new ExampleFileFilter(); filter.addextension("jpg"); filter.addextension("gif"); filter.setdescription("jpg & GIF Images"); chooser.setfilefilter(filter); int returnval = chooser.showopendialog(parent); if(returnval == JFileChooser.APPROVE_OPTION) { System.out.println("You chose to open this file: " + chooser.getselectedfile().getname()); 59

JFileChooser Um filtro de arquivo deve implementar a classe abstrata FileFilter: abstract boolean accept(file f) abstract String getdescription() Gerenciadores de Layout Organizam os componentes GUI num container. FlowLayout Padrão para java.awt.applet, java.awt.panel e javax.swing.jpanel. Coloca os componentes (da direita para esquerda) na ordem que foram adicionados. BorderLayout Padrão para paineis de conteúdo de Jframes (e outras janelas) e JApplets. Organiza os componentes em cinco áreas: Norte, Sul, Leste, Oeste e Centro. GridLayout Organiza os componentes nas linhas e colunas 60

Exemplos FlowLayout BorderLayout GridLayout Painéis GUIs Complexas É necessário que cada componente seja colocado numa localização exata Podemos usar vários painéis Cada painel de componente pode ter um gerenciamento de layout específico Painéis Classe JPanel herda de JComponent, que herda de java.awt.container Cada JPanel é um Container JPanels pode ter componentes (e outros JPanels) adicionados a ele JPanel define o tamanho para os componentes nele contido Cresce para acomodar componentes quando eles são adicionados 61

Painéis Como usar Crie painéis, e defina o layout para cada um Adicione componentes para os painéis Adicione os painéis ao content pane (default BorderLayout) Bordas O modelo swing proporciona um modelo de bordas para os componentes que herdam e JComponent. Para isso pode-se utilizar a classe BorderFactory para criar uma borda. TitledBorder titledborder1 = new TitledBorder("Cores"); jpanel1.setborder(titledborder1); 62