Cristiano Trindade Segunda-feira, 21 de janeiro de 2002

Usando os controles primitivos para criar um applet

Podemos utilizar os controles primitivos da lista apresentada na semana passada para criar um applet simples e funcional. Vejamos:

import java.awt.*;
import java.lang.*;
import java.io.*;
import java.applet.*;

// esse applet possui TextField, Panel, Button, menu Choice e Canvas
public class exemplo_simples extends Applet

{
TextField tf;
DrawCanvas c;
Button drawBtn;
Choice ch;

// acrescentando componentes na tela
public void init()
{

// área de exibição
resize(300,200);
setLayout(new BorderLayout());

// adicionando text na parte superior
tf = new TextField();
add("North",tf);

// área de desenho personalizada (Canvas) ao centro
c = new DrawCanvas(this);
add("Center",c);

// painel com botão e opções na parte inferior
Panel p = new Panel();
drawBtn = new Button("Desenho de acordo com o selecionado ao lado");
p.add(drawBtn);

// criando uma ciaxa de opções e acrescentando opções
ch = new Choice();
ch.addItem("Retângulo");
ch.addItem("Vazio");
ch.addItem("Texto");
p.add(ch);
add("South",p);
}

// tratando eventos
public boolean handleEvent(Event evt)
{
switch(evt.id)
{
case Event.ACTION_EVENT:
{
if(evt.target instanceof Button)
{

// redesenha área de trabalho para novas opções
c.repaint();
}
return false
}
default;
return false;
}
}

// retorna a opção atual para exibição
public String getChoice()
{
return ch.getSelectedItem();
}

// retornando texto na caixa de listagem
public String getTextString()
{
return tf.getText();
}
}

// área de trabalho personalizada
class DrawCanvas extends Canvas
{
exemplo_simples elapp;

// armazena o applet para obter informações de desenho
public synchronized void paint (Graphics g)
{

// obtém o tamanho atual da tela de exibição
Dimension dm = size();

// desenha com base na opção
String s = elapp.getChoice();

// calcula as coordenadas do centro
int x,y,width,height;
x = dm.width / 4;
y = dm.height / 4;
width = dm.width / 2;
height = dm.height / 2;

// desenha um retângulo no centro
if (s.compareTo("Retângulo") == 0)
{

// desenha o retângulo no centro com cores
g.setColor(Color.blue;
g.drawRect(x,y,width,height);
g.setColor(Color.yellow);
g.fillRect(x + 1,y + 1, width - 2, height - 2);
}

// obtém o texto no applet e o exibe no meio
if (s.compareTo("Texto") ==0)
{
String displayText = elapp.getTextString();
g.setColor(Color.red);
g.drawString(displayTExt,x,y + (height/2));
}
}
}

O applet acima possui quatro componentes, que permitem ao usuário escolher o que deve ser exibido e quando. É oferecida a possibilidade de desenhar um retângulo, não desenhar nada ou produzir um texto. Na parte inferior do applet temos um Panel (painel) com objetos Button (botão) e Choice (opção). Na parte superior temos um pbjeto TextField, que exibirá o texto produzido se esta for a opção escolhida.

Por hoje, ficamos por aqui. Um abraço e até a semana que vem.