Programação Visual em Java

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

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

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

8. Interfaces Gráficas de Usuário

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

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

Como construir aplicaçõ e applets

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

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

Programação Orientada a Objetos II

Construção de Interfaces Gráficas

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

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

Interface Gráfica. Prof. Marcelo Cohen

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

Natureza do Software e dos Sistemas

Desenvolvendo aplicações

MÓDULO 4 SWING Parte 3

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

Pacote Java Swing Parte 1

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

Interface Gráficas Parte I. Bruno Crestani Calegaro

Curso de Aprendizado Industrial Desenvolvedor WEB

Aplicações Gráficas com AWT

Especialização em Engenharia de Software - CEUT

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

Programação Orientada a Objetos (DPADF 0063)

Técnicas de Programação II

Gerenciadores de Layouts

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

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 Gráfica. LPG II Java Interface Gráfica AWT. Introdução. AWT - Abstract Window Toolkit

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

CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA A F B G C H D I E J

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

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

Programação Orientada a Objetos II

Tratamento de Eventos

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

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

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

Como usar a documentaçã

Programação Gráfica em Java.

Interfaces Gráficas: Interações Complexas

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

Métodos da classe Applet Criando applets Passando parâmetros de uma página HTML Migrando de uma aplicação para uma applet Applets vs.

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

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

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

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

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

Programação Orientada a Objetos

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

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

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

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

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

Java Linguagem de programação

Curso Java Starter. 1

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

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

Introdução a programação gráfica em Java com Swing

Gerenciadores de Layout

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

Desenvolvimento de Aplicações Desktop

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

Tarefa Orientada 1 A interface do Powerpoint

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Jogo Da Velha. - Parte 1 - Fazendo a parte gráfica do jogo da Velha

Java First-Tier: Aplicações. Construção de Applets. Applets. Applets: Internet Intranet

Programação Java. Construção de Applets

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

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

Roteiro para criação de Applet

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

Programação em Rede JDBC

Introdução à linguagem Java

Programação. 3 Período

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

1 Criando um aplicativo visual em Java

Servlets e Applets, funcionamento e comparativo.

Introdução à Programação. Interfaces Gráficas


Programação Orientada a Objetos (DPADF 0063)

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

A Linguagem Java. Apresentação. Java. A Linguagem da Internet

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

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

PROGRAMAÇÃO ORIENTADA A OBJETOS. CC 3º Período

Gerenciamento de Layout

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

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

Transcrição:

Programação Visual em Java 1

Sumário Introdução Contentores Componentes Layouts Eventos Exemplos 2

Introdução Interfaces gráficas são compostas por: Contentores Janelas, painéis Componentes botões, menus, caixas de texto layouts Disposição dos componentes nos contentores Eventos Rato, teclado, sistema operativo 3

Introdução (Graphical User Interface -Interface Gráfica do Utilizador) : AWT (Abstract Window Toolkit) Infra-estrutura mínima de interface gráfica É implementada sobre componentes nativos do sistema operativo. Limitado em recurso Diferentes plataformas possuem aparência diferente Bugs e incompatibilidades entre plataformas 4

Introdução JFC (Java Foundation Classes) Implementado inteiramente em Java. Oferece uma interface muito mais rica e componentes mais flexíveis. É preciso importar java.awt e java.swing para usar a JFC suporta: definição de botões, menus, etc desenho 2D (java.awt.geom) funcionalidades drag-and-drop (java.awt.dnd) API com acessibilidade a usuários (javax.accessibility 5

Histórico Java 1.0 Interface executa de forma medíocre em todas as plataformas Modelo de eventos arcaico Java 1.1 Melhora o modelo de eventos por delegação usando o design pattern Observer Java 1.2 JFC/Swing substitui totalmente os componentes AWT Mantém e estende a interface de eventos e layout 6

Componentes Todos os elementos de uma aplicação são componentes Principais métodos (chamados pelo sistema): void paint (java.awt.graphics g) void repaint() void update (java.awt.graphics g) Outros métodos importantes: getsize() e setsize () getlocation e setlocation getforeground e setforeground getfont e setfont setenable setvisible 7

contentores Aplicações 8

Hierarquia de classes: 9

Classes Contentoras Frame (AWT) e JFrame (Swing) Servem de base para qualquer aplicação gráfica possui uma barra de título e características para receber menus e outros componentes. Applet e JApplet Tipo de Panel (JPanel) que serve de base para aplicações que se executam dentro de browsers Pode ser inserido dentro de uma página HTML e ocupar o contexto gráfico do browser Dialog e JDialog Usada para definir janelas de diálogo para entrada de dados 10

Aplicações visuais Aplicações gráficas em Java: Applets: componentes iniciados via browser Aplicações stand alone iniciados pelo sistema operativo Capturam eventos do sistema Rato, teclado,... Desenham-se sobre um contexto gráfico fornecido pelo Sistema operativo Aplicação gráfica Browser Fornece os recursos gráficos Controla o seu ciclo de vida Inicio, fim,... Possuem restrições de segurança 11

Ola windows Programa OlaWindows public class OlaWindows extends javax.swing.jframe{ public OlaWindows(String nome) { super(nome); this.setsize(400,350); this.setvisible(true); public static void main(string[] args) ) { new new OlaWindows(" Ola Ola Windows"); 12

Ola Applet Programa OlaApplet public public class class OlaApplet OlaApplet extends extends JApplet{ JApplet{ public public void void paint(graphics paint(graphics g){ g){ g.drawstring("ola g.drawstring("ola Applet",10,100); Applet",10,100); Página Página HTML HTML <html <html> html> <body <body> body> <APPLET <APPLET code="olaapplet.class code="olaapplet.class" OlaApplet.class" " width=350 width=350 height=200> height=200> </APPLET> </APPLET> </body </body> body> </html </html> html> 13

Applets: ciclo de vida Não têm função main 14

Ola Applet Programa OlaApplet public public class class OlaApplet OlaApplet extends extends JApplet{ JApplet{ StringBuffer StringBuffer msg msg ; ; public public void void init(){ init(){ msg msg = = new new StringBuffer(); StringBuffer(); msg.append("iniciando msg.append("iniciando o o Applet Applet.....");."); public public void void start(){ start(){ msg.append("come msg.append("começando "Começando o o Applet Applet.....");."); public public void void stop(){ stop(){ msg.append("parando msg.append("parando o o Applet Applet.....");."); public public void void destroy(){ destroy(){ msg.append("destruindo msg.append("destruindo o o Applet Applet.....");."); public public void void paint(graphics paint(graphics g){ g){ g.drawstring(msg.tostring(),10,100); g.drawstring(msg.tostring(),10,100); 15

Passagem de parâmetros Página Página HTML HTML <html <html> html> <body <body> body> <APPLET <APPLET code="olaapplet.class code="olaapplet.class" OlaApplet.class" " width=350 width=350 height=200> height=200> <param name name = "texto" value="isto é um um parametro"> </APPLET> </APPLET> </body </body> body> </html </html> html> Programa OlaApplet public public class class OlaApplet OlaApplet extends extends JApplet{ JApplet{ public public void void init(){ init(){ msg msg = = new new StringBuffer(); StringBuffer(); msg.append("iniciando msg.append("iniciando o o Applet Applet.....");."); String parametro1 = getparameter("texto"); msg.append(" msg.append(" " " " + + parametro1); parametro1); 16

Restrições dos applets (sandbox) Não pode carregar bibliotecas externas Não pode ler ou escrever arquivos na máquina cliente Não pode fazer ligações de rede a não ser para a máquina de onde veio Não pode iniciar a execução de nenhum programa na máquina do cliente Não tem acesso à maior parte das propriedades do sistema Janelas abertas têm aviso de segurança Várias restrições podem ser flexibilizadas se o applet for assinado 17

Vantagens / desvantagens dos applets Desvantagens Restrições de segurança Tempo de download Incompatibilidade com browsers Vantagens Facilidade de realizar comunicação em rede Possibilidade de abrir janelas externas Capacidade de estender o browser em recursos de segurança, protocolos de rede, capacidade gráfica Aplicação sempre atualizada Capacidade de interagir com a página via JavaScript 18

Componentes objectos 19

http://java.sun.com/docs/books/tutorial/uiswing/c omponents/components.html 20

Componentes Bottons ComboBox List Slidder TextField Label ProgressBar 21

Adicionar Componentes Container pane = this.getcontentpane(); pane.add( ( new Button("ola")); ")); 22

Contentores Panel ScrollPane SplitPane TabbedPane ToolBar InternalFrame 23

layouts Modos de visualização 24

Layouts Filosofia da linguagem JAVA programas portáveis interface adaptável. Localização dos Componentes não é indicada por um par ordenado (x,y) C++ builder Gestor de Apresentação LayoutManager. Adapatação automática dos componentes Pouco flexiveis para o programador Vários layoutmanager Possibilidade de escrever novos layoutmanager 25

FlowLayout Coloca os componentes em fila da esquerda superior do contentor para a direita. Respeita o tamanho preferido dos componentes JPanel c =new JPanel(); c.add(new JButton("1")); c.add(new JTextField(9)); c.add(new JButton("dois")); c.add(new JButton("três")); É o padrão do JPanel. JPanel c =new JPanel(); 26

GridLayout Divide o contentor em linhas e colunas. Permite definir uma matriz de células onde são colocados os componentes. Coloca os componentes da esquerda para a direita, de cima para baixo. Todos os componentes terão o mesmo tamanho. Não respeita o tamanho original dos componentes JPanel c =new =new JPanel(); c.setlayout(new. GridLayout(2,2)); c.add(new JButton( um")); um")); c.add(new JTextField(5)); c.add(new JButton("dois")); c.add(new JButton("três")); 27

BorderLayout Divide um contentor em cinco regiões: BorderLayout.CENTER BorderLayout.NORTH BorderLayout.EAST BorderLayout.SOUTH BorderLayout.WEST Quando se adiciona um componente, é necessário especificar em qual das áreas ele deve ser adicionado. Ex.: add(butok, BorderLayout.WEST); O Componente ocupa todo o espaço! Cada região contém apenas um componente JPanel c =new =new JPanel(new BorderLayout()); JButton b1=new JButton("1"); c.add(b1,borderlayout.north); JButton b2=new JButton("2"); c.add(b2,borderlayout.east); JButton b3=new JButton("3"); c.add(b3,borderlayout.south); JButton b4=new JButton("4"); c.add(b4,borderlayout.west); JButton b5=new JButton("5"); c.add(b5,borderlayout.center); 28

BoxLayout Respeita o tamanho preferido dos componentes Coloca os componentes numa linha ou coluna. BoxLayout.X_AXIS para componentes em linha BoxLayout.Y_AXIS para componentes em coluna JPanel c =new =new JPanel(); c.setlayout(new. BoxLayout(c,BoxLayout.Y_AXIS)); c.add(new JButton( um")); um")); c.add(new JButton( dois )); c.add(new JButton( três")); três")); c.add(new JButton( quatro")); 29

CardLayout Comporta-se como uma pilha, Só o objecto que estiver no topo é visível. Métodos: first(container) last(container) next(container) previous(container) show(container, String) 30

NULL Layout Layout null Utilizado para desligar o gestor de layout pane.setlayout (null); A partir desta instrução é necessário a definição da posição e o do tamanho de cada componente componente.setbounds (x, y, larg, alt); 31

Layouts Compostos Container caixa caixa = janela.getcontentpane(); JPanel painel1 =new =new JPanel(); JPanel painel2 =new =new JPanel(); caixa.setlayout(new GridLayout(2,1)); painel1.setlayout(new GridLayout(2,2)); painel2.setlayout(new FlowLayout(FlowLayout.CENTER)); 32

Eventos Janelas em acção 33

Eventos Realizam o trabalho útil numa aplicação Desencadeiam a execução de métodos Dependem do evento Dependem do componente São geridos por objectos de eventos java.util.eventobject Listeners 34

Eventos Fontes, Eventos, Ouvintes 35

java.util.eventobject Todo o evento tem um objeto que é sua fonte Object fonte = evento.getsource(); Métodos de ouvintes (listeners) que desejam tratar eventos, recebem eventos como argumento public void eventoocorreu(eventobject evento) { Object fonte = evento.getsource();... Ouvintes precisam ser registrados nas fontes Quando ocorre um evento, um método de todos os ouvintes registrados é chamado e evento é passado como argumento button.addactionlistener(ouvinte1); 36

Tipos de Eventos java.awt.event ActionEvent (fonte: componentes de ação) MouseEvent (fonte: componentes afectados pelo rato) ItemEvent (fonte: checkboxes e similares) AdjustmentEvent (fonte: scrollbars) TextEvent (fonte: componentes de texto) WindowEvent (fonte: janelas) FocusEvent (fonte: componentes em geral) KeyEvent (fonte: componentes afectados pelo teclado)... 37

Interface de Eventos 38

Adapters Alguns listeners possuem uma classe Adapter que implementa todos os métodos, sem instruções Implementação vazia: { Só existe para listeners que têm mais de um método São úteis quando um Ouvinte precisa implementar apenas um dos vários métodos de um Listener Pode sobrepor a implementação desejada do método do Adapter e não precisa se preocupar com os outros Não são úteis em ouvintes que já estendem outras classes ou quando implementam diferentes listeners Eliminação de métodos O nome do adapter é semelhante ao do Listener MouseListener: MouseAdapter WindowListener: WindowAdapter 39

Eventos Exemplo: JButton button = new JButton("Fonte"); ActionListener ouvinte1 = new OuvinteDoBotao(); MouseListener ouvinte2 = new OuvinteDeCliques(); button.addactionlistener(ouvinte1); button.addmouselistener(ouvinte2); O mesmo objeto que é fonte às vezes também é listener, se implementar as interfaces É necessário registrar a fonte ao listener o objeto não adivinha que ele mesmo tem que capturar seus eventos this.addwindowlistener(this); 40

Exemplo public class class NewJFrame extends javax.swing.jframe { public NewJFrame() ) { botao botao = new new javax.swing.jbutton(); botao.settext("click"); "); botao.addactionlistener( new new java.awt.event.actionlistener() ) { public void void actionperformed(java.awt.event.actionevent evt) evt) ) { botaoactionperformed(evt); ); ); private void void botaoactionperformed(actionevent evt) evt) ) { JOptionPane.showMessageDialog(this,"Respondi " + evt.getsource()); 41

Fim 42