Arquivo do Blog

Como criar animações

import java.applet.Applet; import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class AppletAnimation extends Applet implements Runnable { int frameNumber = -1; int delay = 100; Thread animatorThread; boolean frozen = false; public void init() { String str; addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { if (frozen) { frozen = false; start(); } else { frozen = true; stop(); } } }); } public void start() { if (!frozen) { if (animatorThread == null) { animatorThread = new Thread(this); } animatorThread.start(); } } public void stop() { animatorThread = null; } public void run() { Thread.currentThread().setPriority(Thread.MIN_PRIORITY); long startTime = System.currentTimeMillis(); Thread currentThread = Thread.currentThread(); while (currentThread == animatorThread) { frameNumber++; repaint(); try { startTime += delay; Thread.sleep(100); } catch (InterruptedException e) { break; } } } public void paint(Graphics g) { g.drawString("Frame " + frameNumber, 0, 30); } }  

Como criar animações: Paint e Thread

import java.awt.Color; import java.awt.Graphics; import java.awt.Insets; import java.util.Timer; import java.util.TimerTask; import javax.swing.JFrame; public class Animate extends JFrame { private static int DELAY = 100; Insets insets; Color colors[] = { Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN, Color.BLUE, Color.MAGENTA }; public void paint(Graphics g) { super.paint(g); if (insets == null) { insets = getInsets(); } // Calculate each time in case of resize int x = insets.left; int y = insets.top; int width = getWidth() - insets.left - insets.right; int height = getHeight() - insets.top - insets.bottom; int start = 0; int steps = colors.length; int stepSize = 360 / steps; synchronized (colors) { for (int i = 0; i < steps; i++) { g.setColor(colors[i]); g.fillArc(x, y, width, height, start, stepSize); start += stepSize; } } } public void go() { TimerTask task = new TimerTask() { public void run() { Color c = colors[0]; synchronized (colors) { System.arraycopy(colors, 1, colors, 0, colors.length - 1); colors[colors.length - 1] = c; } repaint(); } }; Timer timer = new Timer(); timer.schedule(task, 0, DELAY); } public static void main(String args[]) { Animate f = new Animate(); f.setSize(200, 200); f.show(); f.go(); } }  

ADO – Localizando informações

Quando falamos a nível de dados (campos e registros), estamos tratando com o objeto Recordset. Vamos mostrar como encontrar dados específicos em um Recordset ADO. Lembrando que um objeto Recordset possui muitas funções úteis. Entre elas podemos citar as mais usadas: Bookmark, Find, Seek, Filter. Usando Bookmarks (marcadores) Um bookmark de um recordset é como um cursor que aponta para um registro específico dentro do Recordset identificando-o

Noise Image

import java.awt.Graphics; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.DataBuffer; import java.awt.image.DataBufferByte; import java.awt.image.IndexColorModel; import java.awt.image.Raster; import java.awt.image.WritableRaster; import java.util.Random; import javax.swing.JComponent; import javax.swing.JFrame; public class StaticGenerator extends JComponent implements Runnable { byte[] data; BufferedImage image; Random random; public void initialize() { int w = getSize().width, h = getSize().height; int length = ((w + 7) * h) / 8; data = new byte[length]; DataBuffer db = new DataBufferByte(data, length); WritableRaster wr = Raster.createPackedRaster(db, w, h, 1, null); ColorModel cm = new IndexColorModel(1, 2, new byte[] { (byte) 0, (byte) 255 }, new byte[] { (byte) 0, (byte) 255 }, new byte[] { (byte) 0, (byte) 255 }); image = new BufferedImage(cm, wr, false, null); random = new Random(); new Thread(this).start(); } public void run() { while (true) { random.nextBytes(data); repaint(); try { Thread.sleep(1000 / 24); } catch (InterruptedException e) { /* die */ } } } public void paint(Graphics g) { if (image == null) initialize(); g.drawImage(image, 0, 0, this); } public static void main(String[] args) { JFrame f = new JFrame(); f.add(new StaticGenerator()); f.setSize(300, 300); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }  

Carnaval confunde Windows sobre novo horário

Uma mudança na data em que acaba o horário de verão no Brasil causou confusão entre usuários que não mantêm sua versão do Windows atualizada. Inicialmente, o governo brasileiro planejou o fim do horário de verão para o último domingo, dia 14, à zero hora. Esta informação consta no calendário do Windows, que muda os horários dos PCs automaticamente. Em

Hypnosis animation

import java.awt.Color; import java.awt.Dimension; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Paint; import java.awt.RenderingHints; import java.awt.Shape; import java.awt.geom.GeneralPath; import javax.swing.JComponent; import javax.swing.JFrame; public class Hypnosis1 extends JComponent implements Runnable { private int[] coordinates; private int[] deltas; private Paint paint; public Hypnosis1(int numberOfSegments) { int numberOfCoordinates = numberOfSegments * 4 + 2; coordinates = new int[numberOfCoordinates]; deltas = new int[numberOfCoordinates]; for (int i = 0; i < numberOfCoordinates; i++) { coordinates[i] = (int) (Math.random() * 300); deltas[i] = (int) (Math.random() * 4 + 3); if (deltas[i] > 4) deltas[i] = -(deltas[i] - 3); } paint = new GradientPaint(0, 0, Color.blue, 20, 10, Color.red, true); Thread t = new Thread(this); t.start(); } public void run() { try { while (true) { timeStep(); repaint(); Thread.sleep(1000 / 24); } } catch (InterruptedException ie) { } } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Shape s = createShape(); g2.setPaint(paint); g2.fill(s); g2.setPaint(Color.white); g2.draw(s); } private void timeStep() { Dimension d = getSize(); if (d.width == 0 || d.height == 0) return; for (int i = 0; i < coordinates.length; i++) { coordinates[i] += deltas[i]; int limit = (i % 2 == 0) ? d.width : d.height; if (coordinates[i] < 0) { coordinates[i] = 0; deltas[i] = -deltas[i]; } else if (coordinates[i] > limit) { coordinates[i] = limit - 1;

Font size animation

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(8, this); timer.setInitialDelay(190); timer.start(); } public void paint(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; Font font = new Font("Dialog", Font.PLAIN, x); g2d.setFont(font); FontMetrics fm = g2d.getFontMetrics(); String s = "Java"; int w = (int) getSize().getWidth(); int h = (int) getSize().getHeight(); int stringWidth = fm.stringWidth(s); g2d.drawString(s, (w - stringWidth) / 2, h / 2); } public static void main(String[] args) { JFrame frame = new JFrame("FontSizeAnimation"); frame.add(new FontSizeAnimation()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 300); frame.setLocationRelativeTo(null); frame.setVisible(true); } public void actionPerformed(ActionEvent e) { x += 1; alpha -= 0.0001; repaint(); } }  

Fade out de uma imagem: a imagem vai ficando transparente gradualmente até que esteja completamente invisível

import java.awt.AlphaComposite; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.Timer; public class FadeOutImage extends JPanel implements ActionListener { Image myImage = new ImageIcon("a.jpg").getImage(); Timer timer = new Timer(20, this); private float alpha = 1f; public FadeOutImage() { timer.start(); } public void paint(Graphics g) { super.paint(g); Graphics2D g2d = (Graphics2D) g; g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); g2d.drawImage(myImage, 10, 10, null); } public void actionPerformed(ActionEvent e) { alpha += -0.01f; if (alpha <= 0) { alpha = 0; timer.stop(); } repaint(); } public static void main(String[] args) { JFrame frame = new JFrame("Fade out"); frame.add(new FadeOutImage()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 250); frame.setVisible(true); } }  

A rotating and scaling rectangle

import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.RenderingHints; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.Timer; public class SwingTimerBasedAnimationScaleRotate extends JPanel implements ActionListener { Timer timer; private double angle = 0; private double scale = 1; private double delta = 0.01; Rectangle.Float r = new Rectangle.Float(20, 20, 200, 200); public SwingTimerBasedAnimationScaleRotate() { timer = new Timer(10, this); timer.start(); } public void paint(Graphics g) { int h = getHeight(); int w = getWidth(); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2d.translate(w / 2, h / 2); g2d.rotate(angle); g2d.scale(scale, scale); g2d.fill(r); } public static void main(String[] args) { JFrame frame = new JFrame("Moving star"); frame.add(new SwingTimerBasedAnimationScaleRotate()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(420, 250); frame.setLocationRelativeTo(null); frame.setVisible(true); } public void actionPerformed(ActionEvent e) { if (scale < 0.01) { delta = -delta; } else if (scale > 0.99) { delta = -delta; } scale += delta; angle += 0.01; repaint(); } }  

Timer based animation

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); } 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) {

Is Event Dispatcher Thread

import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.AbstractAction; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTable; import javax.swing.SwingUtilities; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableCellRenderer; public class IsEDTExample extends JPanel { private boolean keepRunning; private static int RED = 0; private static int BLUE = 1; private static int GREEN = 2; private static int VARIABLE = 3; private static int SIZE = 3; private int threadShade; private ColorTableModel tableModel= new ColorTableModel(); private Thread colorShadeThread; public IsEDTExample() { JTable table = new JTable(tableModel); table.setRowHeight(100); table.setDefaultRenderer(Object.class, new ColorRenderer()); add(table); add(new JLabel("Thread Color Shade:")); ButtonGroup group = new ButtonGroup(); JRadioButton redOption = new JRadioButton("Red"); group.add(redOption); redOption.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { threadShade = RED; } }); JRadioButton blueOption = new JRadioButton("Blue"); group.add(blueOption); blueOption.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { threadShade = BLUE; } }); JRadioButton greenOption = new JRadioButton("Green"); group.add(greenOption); greenOption.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { threadShade = GREEN; } }); redOption.setSelected(true); this.threadShade = RED; add(redOption); add(greenOption); add(blueOption);

Como seria um mundo sem a Microsoft?

Uma nova era de inovação – ou caos em TI. Será que aplicações web poderiam substituir o Windows? Esse é o tipo do exercício mental que atiça a curiosidade. Como seria a vida sem o Microsoft Windows? Para o pessoal do software livre e de código aberto, o sumiço do Windows – e, por consequência, o fim da hegemonia da

iPad estreia em todo o mundo em março

A venda dos modelos sem suporte a redes 3G do iPad começa nos Estados Unidos e em um grupo de países selecionados no final de março. Entre estes países, devem estar o Canadá e os membros da União Europeia. É provável, no entanto, que a estreia dos modelos sem 3G no Brasil aconteça em pouco tempo, já que não há

Começar a Programar

Antes de começar a programar, é necessário saber algumas noções de programação, e essas noções envolvem principalmente o raciocínio lógico. A programação destina-se a resolver problemas da forma mais simples possível, eliminando processos redundantes e melhorando a obtenção de resultados. Estrutura da programação Análise do problema (dados de entrada, dados de saída, relações de transformação) Desenvolvimento do algoritmo Codificação na

Escreva e-mails corretamente no Live Mail

Adicione uma ferramenta de correção ortográfica ao programa Windows Live Mail para verificar erros em suas mensagens.

Quer dar um show no PowerPoint?

Confira uma coleção de truques e tutoriais para produzir melhor e mais rápido suas apresentações.

Preserve as fontes no PowerPoint

Mantenha a fidelidade visual das apresentações incorporando no arquivo os caracteres usados.

Acesse fácil os comandos do Office

Para evitar cliques, acrescente os comandos mais usados na Barra de Ferramentas de Acesso Rápido.

De uma apresentação, faça outras

Recurso do PowerPoint permite criar apresentações personalizadas tendo outro arquivo como base.

Encurte o caminho no Google Agenda

Em vez de usar o mouse, explore os atalhos de teclado para trabalhar mais rápido na agenda do Google

Controle de prazos com o ProcessMaker

Use o sistema de fluxo de trabalho gratuito ProcessMaker para manter equipes azeitadas e as tarefas sempre em dia.

Monte um servidor de e-mail com agenda e IMAP

Use o 602Lan Suite para criar um servidor local para trabalho colaborativo.

Outlook e Google Calendar em sincronia

Mantenha as agendas do Outlook e do Google Calendar sempre em sincronia com a ajuda do SyncMyCal.

Compartilhe textos no Zoho Writer

No programa online Zoho Writer, vários usuários podem compartilhar e editar o mesmo documento simultaneamente.

Del.icio.us armazena e compartilha favoritos

Crie uma conta no serviço del.icio.us para armazenar e compartilhar sua lista de sites favoritos.

Google Calendar offline com a ajuda do Calgoo

O Calgoo permite usar o Google Calendar offline, criar várias agendas e imprimir em três formatos.

Compartilhe pastas no Windows XP

Saiba como usar o Windows XP para compartilhar várias pastas de uma única vez.

Aproveite o texto das apresentações

Salve a apresentação como estrutura de tópicos para usar o conteúdo em relatórios e outros documentos.

Vídeos do YouTube no PowerPoint

Saiba como executar um vídeo disponível no YouTube em uma apresentação do PowerPoint 2007.

No PowerPoint, quem manda é o mestre

Veja como editar o slide mestre, alterar layouts e salvar as modificações para usar depois no PowerPoint 2007.
error: Content is protected!!