Criando animações utilizando Paint e Thread
Esta dica java mostra como criar animações simples utilizando o método paint(Graphics g) e thread.
Criando animações utilizando Paint e Thread
Esta dica java mostra como criar animações simples utilizando o método paint(Graphics g) e thread.
import java.awt.Color;<B><SPAN lang=EN-US >import </SPAN></B><SPAN lang=EN-US >java.awt.Graphics;</SPAN><B><SPAN lang=EN-US >import </SPAN></B><SPAN lang=EN-US >java.awt.Insets;</SPAN><B><SPAN lang=EN-US >import </SPAN></B><SPAN lang=EN-US >java.util.Timer;</SPAN><B><SPAN lang=EN-US >import </SPAN></B><SPAN lang=EN-US >java.util.TimerTask;</SPAN><B><SPAN lang=EN-US >import </SPAN></B><SPAN lang=EN-US >javax.swing.JFrame;</SPAN><B><SPAN lang=EN-US >public class </SPAN></B><SPAN lang=EN-US >Animate </SPAN><B><SPAN lang=EN-US >extends </SPAN></B><SPAN lang=EN-US >JFrame {</SPAN><SPAN lang=EN-US > </SPAN><B><SPAN lang=EN-US >private static int </SPAN></B><SPAN lang=EN-US >DELAY = </SPAN><SPAN lang=EN-US >100</SPAN><SPAN lang=EN-US >;</SPAN><SPAN lang=EN-US > </SPAN><SPAN lang=EN-US >Insets insets;</SPAN><SPAN lang=EN-US > </SPAN><SPAN lang=EN-US >Color colors[] = { Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN,</SPAN><SPAN lang=EN-US >Color.BLUE, Color.MAGENTA };</SPAN><SPAN lang=EN-US > </SPAN><B><SPAN lang=EN-US >public void </SPAN></B><SPAN lang=EN-US >paint(Graphics g) {</SPAN><B><SPAN lang=EN-US >super</SPAN></B><SPAN lang=EN-US >.paint(g);</SPAN><B><SPAN lang=EN-US >if </SPAN></B><SPAN lang=EN-US >(insets == </SPAN><B><SPAN lang=EN-US >null</SPAN></B><SPAN lang=EN-US >) {</SPAN><SPAN lang=EN-US >insets = getInsets();</SPAN><SPAN lang=EN-US >}</SPAN><B><SPAN lang=EN-US >int </SPAN></B><SPAN lang=EN-US >x = insets.left;</SPAN><B><SPAN lang=EN-US >int </SPAN></B><SPAN lang=EN-US >y = insets.top;</SPAN><B><SPAN lang=EN-US >int </SPAN></B><SPAN lang=EN-US >width = getWidth() - insets.left - insets.right;</SPAN><B><SPAN lang=EN-US >int </SPAN></B><SPAN lang=EN-US >height = getHeight() - insets.top - insets.bottom;</SPAN><B><SPAN lang=EN-US >int </SPAN></B><SPAN lang=EN-US >start = </SPAN><SPAN lang=EN-US >0</SPAN><SPAN lang=EN-US >;</SPAN><B><SPAN lang=EN-US >int </SPAN></B><SPAN lang=EN-US >steps = colors.length;</SPAN><B><SPAN lang=EN-US >int </SPAN></B><SPAN lang=EN-US >stepSize = </SPAN><SPAN lang=EN-US >360 </SPAN><SPAN lang=EN-US >/ steps;</SPAN><B><SPAN lang=EN-US >synchronized </SPAN></B><SPAN lang=EN-US >(colors) {</SPAN><B><SPAN lang=EN-US >for </SPAN></B><SPAN lang=EN-US >(</SPAN><B><SPAN lang=EN-US >int </SPAN></B><SPAN lang=EN-US >i = </SPAN><SPAN lang=EN-US >0</SPAN><SPAN lang=EN-US >; i < steps; i++) {</SPAN><SPAN lang=EN-US >g.setColor(colors[i]);</SPAN><SPAN lang=EN-US >g.fillArc(x, y, width, height, start, stepSize);</SPAN><SPAN lang=EN-US >start += stepSize;</SPAN><SPAN lang=EN-US >}</SPAN><SPAN lang=EN-US >}</SPAN><SPAN lang=EN-US > </SPAN><SPAN lang=EN-US >}</SPAN><SPAN lang=EN-US > </SPAN><B><SPAN lang=EN-US >public void </SPAN></B><SPAN lang=EN-US >go() {</SPAN><SPAN lang=EN-US >TimerTask task = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >TimerTask() {</SPAN><B><SPAN lang=EN-US >public void </SPAN></B><SPAN lang=EN-US >run() {</SPAN><SPAN lang=EN-US >Color c = colors[</SPAN><SPAN lang=EN-US >0</SPAN><SPAN lang=EN-US >];</SPAN><B><SPAN lang=EN-US >synchronized </SPAN></B><SPAN lang=EN-US >(colors) {</SPAN><SPAN lang=EN-US >System.arraycopy(colors, </SPAN><SPAN lang=EN-US >1</SPAN><SPAN lang=EN-US >, colors, </SPAN><SPAN lang=EN-US >0</SPAN><SPAN lang=EN-US >, colors.length - </SPAN><SPAN lang=EN-US >1</SPAN><SPAN lang=EN-US >);</SPAN><SPAN lang=EN-US >colors[colors.length - </SPAN><SPAN lang=EN-US >1</SPAN><SPAN lang=EN-US >] = c;</SPAN><SPAN lang=EN-US >}</SPAN><SPAN lang=EN-US >repaint();</SPAN><SPAN lang=EN-US >}</SPAN><SPAN lang=EN-US >};</SPAN><SPAN lang=EN-US >Timer timer = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >Timer();</SPAN><SPAN lang=EN-US >timer.schedule(task, </SPAN><SPAN lang=EN-US >0</SPAN><SPAN lang=EN-US >, DELAY);</SPAN><SPAN lang=EN-US > </SPAN><SPAN lang=EN-US >}</SPAN><SPAN lang=EN-US > </SPAN><B><SPAN lang=EN-US >public static void </SPAN></B><SPAN lang=EN-US >main(String args[]) {</SPAN><SPAN lang=EN-US >Animate f = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >Animate();</SPAN><SPAN lang=EN-US >f.setSize(</SPAN><SPAN lang=EN-US >200</SPAN><SPAN lang=EN-US >, </SPAN><SPAN lang=EN-US >200</SPAN><SPAN lang=EN-US >);</SPAN><SPAN lang=EN-US >f.show();</SPAN><SPAN lang=EN-US >f.go();</SPAN><SPAN lang=EN-US > </SPAN><SPAN lang=EN-US >}</SPAN><SPAN lang=EN-US >}</SPAN>
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo