JAVA – APLICAÇÕES GRÁFICAS Propriedades Utilizadas: Timer

Propaganda
JAVA – APLICAÇÕES GRÁFICAS
Propriedades Utilizadas:
Timer Based Animation
FACULDADE DE TECNOLOGIA SENAC PELOTAS
Nome do aluno: Danilo Antunes Rizzo
Identificação da Turma: 3º Sem. ADS Noite
Data: 13/05/2010
JAVA – DESENVOLVENDO APLICAÇÕES GRÁFICAS
1 Nome da Propriedade 1
Timer Based Animation
1.1 Introdução e Funcionamento
Está propriedade exibe uma animação gráfica baseada em um timer pré definido no código é uma
animação bem simples somente um circulo oscila seu tamanho demonstrando uma intermitência
continua.
1.2 Código da aplicação
package TimerBasedAnimation;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class TimerBasedAnimation extends JPanel implements ActionListener {
private Ellipse2D.Float ellipse = new Ellipse2D.Float();
private double esize;
private double maxSize = 0;
private boolean initialize = true;
Timer timer;
ActionListener updateProBar;
public TimerBasedAnimation() {
setXY(20 * Math.random(), 200, 200);
timer = new Timer(20, this);
timer.setInitialDelay(190);
timer.start();
}
public void setXY(double size, int w, int h) {
esize = size;
ellipse.setFrame(10, 10, size, size);
}
Faculdade Senac Pelotas
Página 2
JAVA – DESENVOLVENDO APLICAÇÕES GRÁFICAS
public void reset(int w, int h) {
maxSize = w / 10;
setXY(maxSize * Math.random(), w, h);
}
public void step(int w, int h) {
esize++;
if (esize > maxSize) {
setXY(1, w, h);
} else {
ellipse.setFrame(ellipse.getX(), ellipse.getY(), esize, esize);
}
}
public void render(int w, int h, Graphics2D g2) {
g2.setColor(Color.BLUE);
g2.draw(ellipse);
}
public void paint(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
rh.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g2.setRenderingHints(rh);
Dimension size = getSize();
if (initialize) {
reset(size.width, size.height);
initialize = false;
}
this.step(size.width, size.height);
render(size.width, size.height, g2);
}
public void actionPerformed(ActionEvent e) {
repaint();
}
public static void main(String[] args) {
JFrame frame = new JFrame("TimerBasedAnimation");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new TimerBasedAnimation());
frame.setSize(350, 250);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
Faculdade Senac Pelotas
Página 3
JAVA – DESENVOLVENDO APLICAÇÕES GRÁFICAS
1.3 Propriedades utilizadas
Package java.awt.color - Fornece classes para espaços de cor. Ele contém uma implementação de um
espaço de cores com base na International Color Consortium (ICC) Perfil Format Specification, versão 3.4,
15 de agosto de 1997. Ele também contém perfis de cor com base no perfil ICC Format Specification.
A classe Dimension encapsula a largura e a altura de um componente (em número inteiro de precisão) em
um único objeto. A classe está associada com determinadas propriedades de componentes. Vários métodos
definidos pela classe Component eo retorno interface LayoutManager um objeto Dimension.
Normalmente os valores de largura e altura são inteiros não-negativos. Os construtores que permitem que
você crie uma dimensão não impedi-lo de fixação de um valor negativo para essas propriedades. Se o valor
da largura ou altura é negativa, o comportamento de alguns métodos definidos por outros objetos é
indefinido.
A classe Graphics é a classe base abstrata para todos os contextos gráficos que permitem que um
aplicativo para desenhar sobre os componentes que são realizados em vários dispositivos, bem como sobre
as imagens fora da tela.
Um objeto Graphics encapsula informações sobre o estado necessário para tornar as operações básicas
que suporta Java. Esta informação do estado inclui as seguintes propriedades:
A classe awt.event.ActionEvent - Instância um acontecimento semântico que indica que uma ação
componente definido ocorreu. Este evento de alto nível é gerado por um componente (como um botão)
quando a ação ocorre componente específico (como sendo pressionado). O evento é transmitido para cada
objeto ActionListener que se cadastram para receber tais eventos usando o método do componente
addActionListener.
Foram utilizadas também variáveis encapsuladas como “esize, maxSize, initialize” estas variáveis são
privadas e por isso não podem ser acessadas por outras classes.
Existem vários métodos com e sem retorno para o principal como, por exemplo, de método com
retorno o “public void setXY(double size, int w, int h)” e sem retorno o “public
TimerBasedAnimation()”.
1.4 Visualização da Ferramenta em Funcionamento
Faculdade Senac Pelotas
Página 4
JAVA – DESENVOLVENDO APLICAÇÕES GRÁFICAS
1.5 Conclusão
Na implementação deste código percebi várias bibliotecas cujo as quais nunca havia trabalhado nem
visto ainda.
A implementação do código é muito diferente do que havia visto até agora e por isso ficou um pouco
difícil obter “somar” conhecimento ao que já havia feito e visto, no entanto com muita pesquisa consegui
concluir de que o código trata-se de uma animação, não consegui entender bem outras, e também deu para
ver que numa imagem pequena com pouco recurso tem por trás de um código não tão fácil te fazer e
entender no meu ponto de vista, no inicio gerou um pouco de dificuldade, mas aos pouco foi fluindo, tirando
algumas duvidas.
Faculdade Senac Pelotas
Página 5
Download