JAVA – APLICAÇÕES GRÁFICAS Propriedade Utilizada

Propaganda
JAVA – APLICAÇÕES GRÁFICAS
Propriedade Utilizada:
FontSizeAnimation
FACULDADE DE TECNOLOGIA SENAC PELOTAS
Nome do aluno: Paulo Renato S. Veiga
Identificação da Turma: 205 Noite
Data: 16/05/10
JAVA – DESENVOLVENDO APLICAÇÕES GRÁFICAS
1 Nome da Propriedade
FontSizeAnimation
1.1 Introdução e Funcionamento
A propriedade escolhida foi uma fonte com animação de tamanho (FontSizeAnimation), ao rodar o
código pela JVM, a frase que foi escrita vem aumentando gradativamente seu tamanho.
Podemos colocar uma letra, frases ou números, pois todo conteúdo e transformado em strings que
será convertido em gráfico através do método paint que recebe como parâmetro a variável g do tipo
Graphics, que por sua vez é uma classe que tem base abstrata.
A public class FontSizeAnimation extends JPanel implements ActionListener é uma classe
estendida da super classe JPanel. Nessa classe será incluído, um construtor, dois métodos vazios sem
retorno e um método principal (man).
Dentro mesma é criado uma variável timer do tipo Timer e outras duas variáveis, uma do tipo int e
outra do tipo float que serão utilizadas para o construtor.
O public FontSizeAnimation por ter o mesmo nome da classe recebe o nome de construtor. Em
suas propriedades é criado um novo objeto chamado timer, o mesmo não utiliza de variáveis referencia para
acessar as propriedades timer. É o próprio timer que recebe o operador PONTO para acessar a propriedade
setInitialDelay que irá informar o tempo que a animação irá começar.
O método public void paint(Graphics g), é responsável por receber as informações de texto, que
poderá ser posicionado nas coordenadas x e y através da propriedade width e Height que significa largura
e altura.
Para converter em gráfico o texto escrito, é criado uma variável de referencia chamado de g2d
instanciada pela classe Graphics2D e é atribuída a ela a classe Graphics2D.
Em seguida é criado um novo objeto com o operador new que é chamado de Font que utiliza a
variável de referencia font da classe Font. Essa necessidade se teve porque a classe Graphics2D é classe
estendida da classe Graphics que por sua vez é abstract, com isso poderemos acessar as propriedade da
variável g2d com o operador PONTO exemplo .setFont e atribuir a variável font.
São declaradas variáveis string para o recebimento do texto, variáveis do tipo int para o retorno de
tamanho da largura e altura.
As variáveis do tipo int que recebem atribuição do tamanho largura e altura da font para utilizar a
classe g2g com operador PONTO chamar propriedade drawString para desenhar as coordenadas na tela.
O método actionPerformed() é reponsável pela interatividade, foi utilizado um contador e um
repetidor para esta ação.
Se for utilizado o sinal de negativo ao invés de positivo a imagem vira de cabeça para baixo, foi feito
comentários na linha do alpha mas continuou executando perfeitamente o FontSizeAnimation.
O método principal public static void main(String[] args) é reponsável pela apresentação do
projeto. Nele são feitos alterações do tipo, tamanho do frame , cor da fonte e entre outros, através do
operador ponto configurando as propriedades do objeto que foi criado chamado o frame.
Faculdade Senac Pelotas
Página 2
JAVA – DESENVOLVENDO APLICAÇÕES GRÁFICAS
1.2 Código da aplicação com algumas modificações e comentários.
package trabalho;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class FontSizeAnimation extends JPanel implements ActionListener {
Timer timer;
int x = 1;
float alpha = 1;
public FontSizeAnimation() {
timer = new Timer(40, this);
timer.setInitialDelay(500); //tempo de inicialização do FontAnimation
timer.start(); // comando que serve para dar com inicio ao objeto
}
public void paint(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g; //
Font font = new Font("Comic Sans MS", Font.PLAIN, x);//legal dentro das aspas duplas
podemos
// o tipo de fonte;
g2d.setFont(font);
FontMetrics fm = g2d.getFontMetrics();// variavel referencia fm do tipo grafico 2d;
String s = "Boa noite turma do ADS";
String p = "Java aplicações Gráficas"; //foi criado, declarei outra variavel;
int w = (int) getSize().getWidth();
int h = (int) getSize().getHeight();
Faculdade Senac Pelotas
Página 3
JAVA – DESENVOLVENDO APLICAÇÕES GRÁFICAS
int stringWidth = fm.stringWidth(s);
int stringHeight = fm.stringWidth(s);
g2d.drawString(s, (w - stringWidth) / 2, h / 5); //cordenadas x e y do texto;
g2d.drawString(p, (w - stringWidth) / 2, h / 1);// foi criado para apresentar outro
//texto;
}
public static void main(String[] args) {
JFrame frame = new JFrame("FontSizeAnimation"); //foi criado um novo objeto chamado
// frame da classe JFrame e foi passado um arqumento, "FontSizeAnimation",isto se
//dá porque foi criado um construtor na classe JFrame;
frame.add(new FontSizeAnimation());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 300); // a propriedade setSize informa o tamanho da janela
//JFrame dispondo largura e altura;
frame.setLocationRelativeTo(null);
frame.setTitle("Criado por Paulo Veiga"); // a propriedade setTitle que foi criado,
//foi utilizado para incluir o titulo na barra titulo;
frame.setBounds(0,100,800,400); //a propriedade setBounds que foi criado,redimensiona
//e posiciona JFrame. Primeiro valor cordenada x , segundo cordenada y,terceiro
//largura e quarto altura;
frame.setVisible(true);
}
frame.setForeground(Color.BLUE.darker());// foi utilizado a propriedade foreground para
//troca cor de fundo da fonte;
public void actionPerformed(ActionEvent e) {
x += 1; // aqui fica o incremento dando ação de movimento a fonte
// se for utilizado o sinal de -+=1 a posição da fonte fica invertida.
alpha -= 0.0001; // foi aplicado comentário mas nada aconteceu.
repaint(); // comando que serve para repetir o incremento.
}
}
1.3 Propriedades utilizadas
import java.awt.font: A classe Font representa fontes, que são usados para processar texto, de forma
visível. Uma fonte fornece as informações necessárias para seqüências mapa de caracteres para
seqüências de glifos e tornar as seqüências de glifos em gráficos e objetos de componentes.
import java.awt.FontMetrics: A classe FontMetrics define uma métrica font objeto, que encapsula
informações sobre o processamento de uma fonte particular em uma tela especial.
Faculdade Senac Pelotas
Página 4
JAVA – DESENVOLVENDO APLICAÇÕES GRÁFICAS
import java.awt.Graphics: É uma classe tem base abstrata para todos os contextos gráficos que
permitem um aplicativo desenhar sobre os componentes que são realizados em vários dispositivos.
import java.awt.Graphics2D: Esta classe estende a classe Graphics para proporcionar um controle
mais sofisticado sobre a geometria, transformação de coordenadas, gerenciamento de cores, layout e texto.
Esta é a classe fundamental para tornar as formas em duas dimensões, textos e imagens sobre o Java.
import java.awt.event.ActionEvent: Um acontecimento que indica que uma ação ocorreu no
componente definido, este evento de alto nível é gerado por um componente exemplo um botão.
import java.awt.event.ActionListener: Responsável por atualizar a tela, uma vez que ele vai
incrementando um novo evento.
import javax.swing.JFrame: Janela responsável pela apresentação do projeto.
import javax.swing.JPanel: É um nome genérico dado ao container, que serve para guardar exemplos
e documentação de tarefas dos painéis.
import javax.swing.Timer: Responsável pelo tempo de execução inicial da animação do
FontSizeAnimation .
1.4 Visualização da Ferramenta em Funcionamento
Faculdade Senac Pelotas
Página 5
JAVA – DESENVOLVENDO APLICAÇÕES GRÁFICAS
1.5 Conclusão
Para mim, a realização deste trabalho foi de extrema importância, pois, foi onde pude associar o
conteúdo teórico dado em sala de aula com a pratico da programação orientada a objetos.
Com a proposta do trabalho compreendida, que nem tudo que existia no projeto nós conseguiríamos
associar ao conteúdo dado. Foi necessário buscar informações externas complementares e fazer abstração
geral de tudo, para entender as funcionalidades do projeto. Com isso obtive conhecimento em varias
propriedades pela qual não tinha visto ainda.
Faculdade Senac Pelotas
Página 6
Download