A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Applet com texto

Ter

7

Abr

2009


14:21

(1 voto de 5.00) 


Iniciante

As fontes também são um objeto Java e são tratadas como imagens gráficas. Se você ainda não leu o tutorial "Java - Entendendo Fontes", sugiro que leia este pequeno texto antes de prosseguir. Os pontos principais deste tutorial são:

  1. Criar a estrutura básica de um applet
  2. Tratar parâmetros
  3. Substituir métodos
  4. Trabalhar com fontes
  5. Gerar um texto na janela do applet

O código Java

import java.applet.*; import java.awt.*; public class escreve extends Applet { Font f1 = new Font("Helvetica", Font.BOLD, 16), f2 = new Font("Courier", Font.PLAIN, 12); Dimension d; String s1 = "Mais Java NumaBoa", s2 = "Aguarde carregar o applet..."; int x1, x2, y1, y2; public void init() { // Pegar parâmetros, se existirem String s = getParameter("mensagem1"); if (s != null) s1 = s; s = getParameter("mensagem2"); if (s != null) s2 = s; // Deixar tudo pronto para o método paint d = this.getSize(); FontMetrics fm = getFontMetrics(f1); x1 = ((d.width - fm.stringWidth(s1)) / 2); y1 = ((d.height - fm.getHeight()) / 2); fm = getFontMetrics(f2); x2 = ((d.width - fm.stringWidth(s2)) / 2); y2 = ((d.height - fm.getHeight()) / 2) + 10; } public void paint(Graphics g) { g.setColor(Color.orange); g.drawRect(0, 0, d.width - 1, d.height - 1); g.setColor(Color.black); g.setFont(f1); g.drawString(s1, x1, y1); g.setColor(Color.gray); g.setFont(f2); g.drawString(s2, x2, y2); } } // fim da classe

Inserção em documento HTML

Os parâmetros são opcionais. Se omitidos, o applet mostra as mensagens padrão "Mais Java NumaBoa" e "Aguarde carregar o applet...".

O applet funcionando

Compilando seu código Java com qualquer compilador disponível (por exemplo, o javac.exe do kit desenvolvedor) será gerado um arquivo de bytecodes com o mesmo nome da classe, ou seja, escreve.class.

Crie um documento HTML e insira o applet como mencionado acima. Use os parâmetros mensagem1 e/ou mensagem2 se quiser mudar o conteúdo do texto. O applet precisa ter uma largura (width) que permita visualizar o texto na íntegra: ajuste-a de acordo com o seu texto.

Chame o documento num browser e aprecie o resultado do seu trabalho.

Explicações que podem ser úteis

Mais um applet bobinho? Novamente não. Com este applet reforçamos os conhecimentos já adquiridos e aprendemos como passar informações aos usuários.

De acordo com as linhas do código Java acima, seguem as observações:

  • Importamos o pacote java.applet.* com todas as suas classes para podermos fazer a extensão da classe Applet e criar nosso próprio applet. Também importamos o pacote java.awt.* com todas as suas classes para apoiar Fonts, FontMetrics, Dimension, Graphics, etc.
  • Linha 4: Se tiver dúvidas sobre a declaração public class escreve extends Applet, leia o tutorial "O primeiro applet" para revisar o assunto.
  • Linhas 5 a 11: Na declaração de variáveis não usamos nenhum tipo de modificador, restringindo o escopo destas variáveis à classe escreve (a única do nosso pacote).
    Com Font inicializamos as variáveis f1 e f2 e atribuímos a elas os valores nome, estilo e tamanho. Caso tenha dúvidas, há explicações mais detalhadas em "Java - Entendendo Fontes".
    O pacote AWT nos fornece Dimension, que é um objeto da classe do mesmo nome, e que contém dois inteiros: a largura (width) e a altura (height) de um componente.
    Declaramos também duas String, s1 e s2, com o texto padrão que será apresentado, além dos inteiros (int) x1, x2, y1 e y2.
  • Linhas 13 a 30: Sabemos que o primeiro método que um applet executa, e apenas uma vez ao ser carregado, é o método init(). Substituímos o método para verificar se há mensagens solicitadas e para calcular a posição das mesmas na janela do applet.
    Inicialmente atribuímos a d (dimension) a largura e a altura do nosso applet invocando o método getSize(): d = this.getSize(); Note que usamos this, o qual referencia o próprio applet. Obtém-se o mesmo resultado com d = getSize();
    Em seguida definimos um objeto FontMetrics fm, o qual guarda as informações de uma fonte específica da tela atual, e o inicializamos com a fonte f1. Através da largura do applet (d.width) e da largura da string s1, obtida com fm.stringWidth(s1), podemos calcular a posição no eixo x da string s1, ou seja, centralizamos a string s1 no eixo x da tela do applet. Através da altura do applet (d.height) e da altura da string s1 (fm.getHeight) podemos calcular a posição da "linha de base" da string s1 no eixo y. Desta forma, centralizamos a string s1 no eixo y da tela do applet.
    Fazemos os mesmos cálculos para a string s2.
  • Linhas 32 a 43: De posse das strings s1 e s2, além das respectivas coordenadas de tela (x1, y1 e x2, y2), o applet executa seus métodos padrão até encontrar o método paint( ) que foi substituído para que desenhasse as strings desejadas.
    Atribuímos a cor laranja ao ambiente gráfico Graphic g com g.setColor(Color.orange) e desenhamos o retângulo que enquadra o texto com g.drawRect(0, 0, d.width - 1, d.height - 1) - a tradução de "draw" é desenhe. A seguir, passamos a cor para preto com g.setColor(Color.black), ativamos a fonte f1 com g.setFont(f1) e DESENHAMOS a string s1 com g.drawString(s1, x1, y1), onde x1 e y1 são as coordenadas de tela para o início da linha de base da string s1.
    Falta pouco... com g.setColor(Color.gray) passamos a cor do ambiente gráfico para cinza, com g.setFont(f2) ativamos a fonte f2 e com g.drawString(s2, x2, y2) desenhamos a segunda string.

Lição de casa

Modifique e amplie o código deste applet. Sugestões:

  1. Passe o nome das fontes como parâmetro.
  2. Passe um parâmetro para mostrar/não mostrar o retângulo que enquadra as mensagens.

Considerações finais

Novamente tem muito texto neste tutorial, mas, se analisarmos bem, uma grande quantidade de conceitos novos foram introduzidos. São conceitos básicos, porém indispensáveis para se criar código Java bem estruturado.

Não deixe se levar pelas aparências - simples não significa sem importância!

Se quiser, você pode baixar o código fonte, a classe e o tutorial na seção de downloads em tutoriais/java.

Grande abraço e sucesso!

vó Vicki vovo

Вадим Логофет детисковородки грильооо полигон киев отзывысамые мощныелобановский александрwobs.uaхарьков никас

Informações adicionais