waldeck/curso/java

23
Inteligência Artificial Reinaldo Bianchi FEI - Elétrica 2000

description

http://www.dm.ufscar.br/~waldeck/curso/java/

Transcript of waldeck/curso/java

Page 1: waldeck/curso/java

Inteligência Artificial

Reinaldo Bianchi

FEI - Elétrica

2000

Page 2: waldeck/curso/java

6a. Aula

Applets e Gráficos

Page 3: waldeck/curso/java

Vimos na aula passada

■ Como reutilizar programas existentes?■ Composição ■ Herança em Java:

– Conceitos básicos– Sintaxe– Exemplos

■ Polimorfismo

Page 4: waldeck/curso/java

Nesta aula veremos:

■ Última aula de Java:■ Applets■ Gráficos

Page 5: waldeck/curso/java

Applets

■ Objetivo:– Criar uma Interface Gráfica que funcione

em qualquer sistema operacional

■ Problemas:– Tem que ser simples (para funcionar em

qualquer lugar).– Não é totalmente orientada a objetos.

– Existem 2 tipos diferentes.

Page 6: waldeck/curso/java

Applets (II)

■ Um applet criado pelo usuário é uma extensão da classe Applet definida pela linguagem Java.

■ Diversos métodos são Herdados.■ Um applet ocupa uma área gráfica de

tamanho definido: ele só pode trabalhar nessa área.

Page 7: waldeck/curso/java

Métodos Básicos

■ init(): Chamado quando o Applet é criado. Funciona como um construtor.

■ destroy(): Chamado quando o Applet está sendo terminado. Funciona como o finalize().

■ paint(): Chamado toda vez que é necessário atualizar a área que o Applet ocupa.

Page 8: waldeck/curso/java

Métodos Básicos (II)

■ stop(): Chamado quando o Applet é movido para fora da áreavisível do Browser, para economizar processamento. Também é chamado antes do destroy().

■ start(): Chamado quando o Applet se move para a área visível. Permite retomar sua

operação normal depois de um stop().

Page 9: waldeck/curso/java

Applet Básico: OlaApplet.java

import java.applet.Applet;import java.awt.Graphics;

public class OlaApplet extends Applet{ public void init(){ System.out.println("Applet Ini.\n"); } public void paint (Graphics g){ g.drawString ("Ola mundo!", 5, 5); }}

Page 10: waldeck/curso/java

Detalhes:

■ public void init ()– usou init() para imprimir uma mensagem.

■ public void paint (Graphics g)– Recebe um ponteiro para a área gráfica

que pode usar: Graphics g

■ g.drawString ("Ola mundo!", 20, 20);– desenha uma string na posição 20, 20

– é um entre diversos métodos existentes para gerar gráficos.

Page 11: waldeck/curso/java

Paginas Web para os Applets

■ Applets são executados a partir de páginas HTML.

■ É necessário adicionar um código HTML na página, para esta chamar o Applet.

Page 12: waldeck/curso/java

Código HTML para chamar um Applet

<APPLET CODEBASE = "." CODE = "OlaApplet.class" WIDTH = 100 HEIGHT = 100 HSPACE = 0 VSPACE = 0 ALIGN = middle></APPLET>

Page 13: waldeck/curso/java

Como executar

■ Compilar o OlaApplet.java no JBuilder.■ Copiar o OlaApplet.class para o mesmo

diretório onde se encontra o OlaApplet.html

■ Abrir OlaApplet.html no Netscape.■ Para ver as mensagens System.out.*

abrir o Java Console: – Communicator/Tools/Java Console

Page 14: waldeck/curso/java

Notas e Dicas

■ Applets não possuem um método main(), mas sim um init().

■ Podemos porém chamar diretamente o método paint().

■ Nunca coloque ele dentro de um package.

■ Applets demoram mais para serem carregados pelo Browser: não abuse deles.

Page 15: waldeck/curso/java

Adicionando Botões

■ Os Applets podem ter textos, botões, labels, ...

■ O próprio Java cuida do Layout em que estes componentes aparecerão.

■ Como realizar uma ação quando o botão é apertado?

Page 16: waldeck/curso/java

Capturando um evento e Realizando uma ação

■ Eventos que acontecem no applet ( apertar de botão, ...) são capturadas pelo método action().

■ Este método possui 2 argumentos:– Event: o evento que disparou esta ação– Target: o alvo do evento, que não é usado.

■ Todas as ações que o applet pode fazer são definidas aqui, dentro de um if encadeado.

Page 17: waldeck/curso/java

Ver exemplo BotoesApplet.java

■ No método init():– add() - adiciona o componente ao applet. É

um método da classe Applet.

■ No método action():– if (e.target.equals(b1)): Define a ação a

ser feita caso o alvo do evento tenha sido o botão 1.

– else return super.action(e, obj): chama o método action default da classe Applet.

Page 18: waldeck/curso/java

Botões e Caixas de Texto

■ Ver exemplo TextoeBotoesApplet.java

■ Exercício:– Implemente um Applet calculadora...

Page 19: waldeck/curso/java

Java 2 - SWING

■ Existem 3 tipos de Applets: AWT 1.0, AWT 1.1 e Swing:– AWT 1.0 é mais antigo, não é Orientado a

Objetos

– AWT 1.1: melhorzinho...– Swing (Java2) é incompatível com

Programas e Browsers desatualizados. (Não roda no JBuilder 3.0)

■ Applet Swing é exatamente igual a um programa independente.

Page 20: waldeck/curso/java

Applet SWING Básico (AppletSwing.java)

import javax.swing.*;import java.awt.*;

public class AppletSwing extends JApplet {

JLabel jLabel1 = new JLabel("Applet!");

public void init() { getContentPane().add(jLabel1); }}

Page 21: waldeck/curso/java

Outros exemplos Swing

■ Ver Label1.java■ Ver Button2.java

■ Conclusão: Ainda não dá para usar applets Swing para distribuição.

Page 22: waldeck/curso/java

Funções Gráficas Java

■ Como o applet é uma área gráfica, podemos utilizar qualquer função gráfica existente em Java.

■ Exemplos:– g.drawString ("Ola mundo!", 20, 20);– g.draw3DRect(5,5,90, 90, true);– g.setColor(Color.cyan);

– g.drawOval(70,70,20, 10);– g.fillOval(15, 80, 5,5);

Page 23: waldeck/curso/java

Exercício Gráfico

■ Defina uma hierarquia para objetos gráficos:– Círculo

– Triângulo– Quadrado

■ Estes objetos devem possuir um método desenhe.

■ Implemente um applet que utilize objetos destas classes.