
{"id":3606,"date":"2010-03-02T11:28:16","date_gmt":"2010-03-02T14:28:16","guid":{"rendered":"https:\/\/eliezerladeira.com.br\/blog\/?p=3606"},"modified":"2026-02-09T11:56:45","modified_gmt":"2026-02-09T14:56:45","slug":"bounce-thread","status":"publish","type":"post","link":"https:\/\/eliezerladeira.com.br\/blog\/bounce-thread\/","title":{"rendered":"Bounce Thread"},"content":{"rendered":"<div class=\"entry\">\n<p><a href=\"https:\/\/netsysoft.wordpress.com\/wp-content\/uploads\/2010\/03\/bouncethread.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-647 lazyload\" title=\"BounceThread\" data-src=\"https:\/\/netsysoft.wordpress.com\/wp-content\/uploads\/2010\/03\/bouncethread.png?w=468\" data-sizes=\"(max-width: 300px) 100vw, 300px\" data-srcset=\"https:\/\/netsysoft.wordpress.com\/wp-content\/uploads\/2010\/03\/bouncethread.png 300w, https:\/\/netsysoft.wordpress.com\/wp-content\/uploads\/2010\/03\/bouncethread.png?w=150&amp;h=100 150w\" alt=\"\" data-attachment-id=\"647\" data-permalink=\"https:\/\/netsysoft.wordpress.com\/2010\/03\/02\/bounce-thread\/bouncethread\/\" data-orig-file=\"https:\/\/netsysoft.wordpress.com\/wp-content\/uploads\/2010\/03\/bouncethread.png\" data-orig-size=\"300,200\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"BounceThread\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/netsysoft.wordpress.com\/wp-content\/uploads\/2010\/03\/bouncethread.png?w=300\" data-large-file=\"https:\/\/netsysoft.wordpress.com\/wp-content\/uploads\/2010\/03\/bouncethread.png?w=300\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><\/a><\/p>\n<p><code>\/**<\/code><br \/>\n<code>*&nbsp;@version&nbsp;1.20&nbsp;1999-04-25<\/code><br \/>\n<code>*&nbsp;@author&nbsp;Cay&nbsp;Horstmann<\/code><br \/>\n<code>*\/<\/code><\/p>\n<p><code><strong>import&nbsp;<\/strong>java.awt.Container;<\/code><br \/>\n<code><strong>import&nbsp;<\/strong>java.awt.Dimension;<\/code><br \/>\n<code><strong>import&nbsp;<\/strong>java.awt.Graphics;<\/code><br \/>\n<code><strong>import&nbsp;<\/strong>java.awt.event.ActionEvent;<\/code><br \/>\n<code><strong>import&nbsp;<\/strong>java.awt.event.ActionListener;<\/code><br \/>\n<code><strong>import&nbsp;<\/strong>java.awt.event.WindowAdapter;<\/code><br \/>\n<code><strong>import&nbsp;<\/strong>java.awt.event.WindowEvent;<\/code><\/p>\n<p><code><strong>import&nbsp;<\/strong>javax.swing.JButton;<\/code><br \/>\n<code><strong>import&nbsp;<\/strong>javax.swing.JFrame;<\/code><br \/>\n<code><strong>import&nbsp;<\/strong>javax.swing.JPanel;<\/code><\/p>\n<p><code><strong>public&nbsp;class&nbsp;<\/strong>BounceThread&nbsp;{<\/code><br \/>\n<code><strong>public&nbsp;static&nbsp;void&nbsp;<\/strong>main(String[]&nbsp;args)&nbsp;{<\/code><br \/>\n<code>JFrame&nbsp;frame&nbsp;=&nbsp;<strong>new&nbsp;<\/strong>BounceThreadFrame();<\/code><br \/>\n<code>frame.show();<\/code><br \/>\n<code>}<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code><strong>class&nbsp;<\/strong>BounceThreadFrame&nbsp;<strong>extends&nbsp;<\/strong>JFrame&nbsp;{<\/code><br \/>\n<code><strong>public&nbsp;<\/strong>BounceThreadFrame()&nbsp;{<\/code><br \/>\n<code>setSize(300,&nbsp;200);<\/code><br \/>\n<code>setTitle(\"Bounce\");<\/code><\/p>\n<p><code>addWindowListener(<strong>new&nbsp;<\/strong>WindowAdapter()&nbsp;{<\/code><br \/>\n<code><strong>public&nbsp;void&nbsp;<\/strong>windowClosing(WindowEvent&nbsp;e)&nbsp;{<\/code><br \/>\n<code>System.exit(0);<\/code><br \/>\n<code>}<\/code><br \/>\n<code>});<\/code><\/p>\n<p><code>Container&nbsp;contentPane&nbsp;=&nbsp;getContentPane();<\/code><br \/>\n<code>canvas&nbsp;=&nbsp;<strong>new&nbsp;<\/strong>JPanel();<\/code><br \/>\n<code>contentPane.add(canvas,&nbsp;\"Center\");<\/code><br \/>\n<code>JPanel&nbsp;p&nbsp;=&nbsp;<strong>new&nbsp;<\/strong>JPanel();<\/code><br \/>\n<code>addButton(p,&nbsp;\"Start\",&nbsp;<strong>new&nbsp;<\/strong>ActionListener()&nbsp;{<\/code><br \/>\n<code><strong>public&nbsp;void&nbsp;<\/strong>actionPerformed(ActionEvent&nbsp;evt)&nbsp;{<\/code><br \/>\n<code>Ball&nbsp;b&nbsp;=&nbsp;<strong>new&nbsp;<\/strong>Ball(canvas);<\/code><br \/>\n<code>b.start();<\/code><br \/>\n<code>}<\/code><br \/>\n<code>});<\/code><\/p>\n<p><code>addButton(p,&nbsp;\"Close\",&nbsp;<strong>new&nbsp;<\/strong>ActionListener()&nbsp;{<\/code><br \/>\n<code><strong>public&nbsp;void&nbsp;<\/strong>actionPerformed(ActionEvent&nbsp;evt)&nbsp;{<\/code><br \/>\n<code>canvas.setVisible(<strong>false<\/strong>);<\/code><br \/>\n<code>System.exit(0);<\/code><br \/>\n<code>}<\/code><br \/>\n<code>});<\/code><br \/>\n<code>contentPane.add(p,&nbsp;\"South\");<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code><strong>public&nbsp;void&nbsp;<\/strong>addButton(Container&nbsp;c,&nbsp;String&nbsp;title,&nbsp;ActionListener&nbsp;a)&nbsp;{<\/code><br \/>\n<code>JButton&nbsp;b&nbsp;=&nbsp;<strong>new&nbsp;<\/strong>JButton(title);<\/code><br \/>\n<code>c.add(b);<\/code><br \/>\n<code>b.addActionListener(a);<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code><strong>private&nbsp;<\/strong>JPanel&nbsp;canvas;<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code><strong>class&nbsp;<\/strong>Ball&nbsp;<strong>extends&nbsp;<\/strong>Thread&nbsp;{<\/code><br \/>\n<code><strong>public&nbsp;<\/strong>Ball(JPanel&nbsp;b)&nbsp;{<\/code><br \/>\n<code>box&nbsp;=&nbsp;b;<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code><strong>public&nbsp;void&nbsp;<\/strong>draw()&nbsp;{<\/code><br \/>\n<code>Graphics&nbsp;g&nbsp;=&nbsp;box.getGraphics();<\/code><br \/>\n<code>g.fillOval(x,&nbsp;y,&nbsp;XSIZE,&nbsp;YSIZE);<\/code><br \/>\n<code>g.dispose();<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code><strong>public&nbsp;void&nbsp;<\/strong>move()&nbsp;{<\/code><br \/>\n<code><strong>if&nbsp;<\/strong>(!box.isVisible())<\/code><br \/>\n<code><strong>return<\/strong>;<\/code><br \/>\n<code>Graphics&nbsp;g&nbsp;=&nbsp;box.getGraphics();<\/code><br \/>\n<code>g.setXORMode(box.getBackground());<\/code><br \/>\n<code>g.fillOval(x,&nbsp;y,&nbsp;XSIZE,&nbsp;YSIZE);<\/code><br \/>\n<code>x&nbsp;+=&nbsp;dx;<\/code><br \/>\n<code>y&nbsp;+=&nbsp;dy;<\/code><br \/>\n<code>Dimension&nbsp;d&nbsp;=&nbsp;box.getSize();<\/code><br \/>\n<code><strong>if&nbsp;<\/strong>(x&nbsp;&lt;&nbsp;0)&nbsp;{<\/code><br \/>\n<code>x&nbsp;=&nbsp;0;<\/code><br \/>\n<code>dx&nbsp;=&nbsp;-dx;<\/code><br \/>\n<code>}<\/code><br \/>\n<code><strong>if&nbsp;<\/strong>(x&nbsp;+&nbsp;XSIZE&nbsp;&gt;=&nbsp;d.width)&nbsp;{<\/code><br \/>\n<code>x&nbsp;=&nbsp;d.width&nbsp;-&nbsp;XSIZE;<\/code><br \/>\n<code>dx&nbsp;=&nbsp;-dx;<\/code><br \/>\n<code>}<\/code><br \/>\n<code><strong>if&nbsp;<\/strong>(y&nbsp;&lt;&nbsp;0)&nbsp;{<\/code><br \/>\n<code>y&nbsp;=&nbsp;0;<\/code><br \/>\n<code>dy&nbsp;=&nbsp;-dy;<\/code><br \/>\n<code>}<\/code><br \/>\n<code><strong>if&nbsp;<\/strong>(y&nbsp;+&nbsp;YSIZE&nbsp;&gt;=&nbsp;d.height)&nbsp;{<\/code><br \/>\n<code>y&nbsp;=&nbsp;d.height&nbsp;-&nbsp;YSIZE;<\/code><br \/>\n<code>dy&nbsp;=&nbsp;-dy;<\/code><br \/>\n<code>}<\/code><br \/>\n<code>g.fillOval(x,&nbsp;y,&nbsp;XSIZE,&nbsp;YSIZE);<\/code><br \/>\n<code>g.dispose();<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code><strong>public&nbsp;void&nbsp;<\/strong>run()&nbsp;{<\/code><br \/>\n<code><strong>try&nbsp;<\/strong>{<\/code><br \/>\n<code>draw();<\/code><br \/>\n<code><strong>for&nbsp;<\/strong>(<strong>int&nbsp;<\/strong>i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;=&nbsp;1000;&nbsp;i++)&nbsp;{<\/code><br \/>\n<code>move();<\/code><br \/>\n<code>sleep(5);<\/code><br \/>\n<code>}<\/code><br \/>\n<code>}&nbsp;<strong>catch&nbsp;<\/strong>(InterruptedException&nbsp;e)&nbsp;{<\/code><br \/>\n<code>}<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code><strong>private&nbsp;<\/strong>JPanel&nbsp;box;<\/code><\/p>\n<p><code><strong>private&nbsp;static&nbsp;final&nbsp;int&nbsp;<\/strong>XSIZE&nbsp;=&nbsp;10;<\/code><\/p>\n<p><code><strong>private&nbsp;static&nbsp;final&nbsp;int&nbsp;<\/strong>YSIZE&nbsp;=&nbsp;10;<\/code><\/p>\n<p><code><strong>private&nbsp;int&nbsp;<\/strong>x&nbsp;=&nbsp;0;<\/code><\/p>\n<p><code><strong>private&nbsp;int&nbsp;<\/strong>y&nbsp;=&nbsp;0;<\/code><\/p>\n<p><code><strong>private&nbsp;int&nbsp;<\/strong>dx&nbsp;=&nbsp;2;<\/code><\/p>\n<p><code><strong>private&nbsp;int&nbsp;<\/strong>dy&nbsp;=&nbsp;2;<\/code><br \/>\n<code>}<\/code><\/p>\n<p>&nbsp;<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\/** *&nbsp;@version&nbsp;1.20&nbsp;1999-04-25 *&nbsp;@author&nbsp;Cay&nbsp;Horstmann *\/ import&nbsp;java.awt.Container; import&nbsp;java.awt.Dimension; import&nbsp;java.awt.Graphics; import&nbsp;java.awt.event.ActionEvent; import&nbsp;java.awt.event.ActionListener; import&nbsp;java.awt.event.WindowAdapter; import&nbsp;java.awt.event.WindowEvent; import&nbsp;javax.swing.JButton; import&nbsp;javax.swing.JFrame; import&nbsp;javax.swing.JPanel; public&nbsp;class&nbsp;BounceThread&nbsp;{ public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{ JFrame&nbsp;frame&nbsp;=&nbsp;new&nbsp;BounceThreadFrame(); frame.show(); } }<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_layout":"default_layout","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Bounce Thread","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[3508,1079],"tags":[249,942,51],"class_list":["post-3606","post","type-post","status-publish","format-standard","hentry","category-programacao","category-tecnologia","tag-informatica","tag-java","tag-programacao"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":3600,"url":"https:\/\/eliezerladeira.com.br\/blog\/como-criar-animacoes\/","url_meta":{"origin":3606,"position":0},"title":"Como criar anima\u00e7\u00f5es","author":"admin","date":"","format":false,"excerpt":"import\u00a0java.applet.Applet; import\u00a0java.awt.Graphics; import\u00a0java.awt.event.MouseAdapter; import\u00a0java.awt.event.MouseEvent; public\u00a0class\u00a0AppletAnimation\u00a0extends\u00a0Applet\u00a0implements\u00a0Runnable\u00a0{ int\u00a0frameNumber\u00a0=\u00a0-1; int\u00a0delay\u00a0=\u00a0100; Thread\u00a0animatorThread; boolean\u00a0frozen\u00a0=\u00a0false; public\u00a0void\u00a0init()\u00a0{ String\u00a0str; addMouseListener(new\u00a0MouseAdapter()\u00a0{ public\u00a0void\u00a0mousePressed(MouseEvent\u00a0e)\u00a0{ if\u00a0(frozen)\u00a0{ frozen\u00a0=\u00a0false; start(); }\u00a0else\u00a0{ frozen\u00a0=\u00a0true; stop(); } } }); } public\u00a0void\u00a0start()\u00a0{ if\u00a0(!frozen)\u00a0{ if\u00a0(animatorThread\u00a0==\u00a0null)\u00a0{ animatorThread\u00a0=\u00a0new\u00a0Thread(this); } animatorThread.start(); } } public\u00a0void\u00a0stop()\u00a0{ animatorThread\u00a0=\u00a0null; } public\u00a0void\u00a0run()\u00a0{ Thread.currentThread().setPriority(Thread.MIN_PRIORITY); long\u00a0startTime\u00a0=\u00a0System.currentTimeMillis(); Thread\u00a0currentThread\u00a0=\u00a0Thread.currentThread(); while\u00a0(currentThread\u00a0==\u00a0animatorThread)\u00a0{ frameNumber++; repaint(); try\u00a0{ startTime\u00a0+=\u00a0delay; Thread.sleep(100); }\u00a0catch\u00a0(InterruptedException\u00a0e)\u00a0{ break; } } } public\u00a0void\u00a0paint(Graphics\u00a0g)\u00a0{\u2026","rel":"","context":"Em &quot;Programa\u00e7\u00e3o&quot;","block_context":{"text":"Programa\u00e7\u00e3o","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/tecnologia\/programacao\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3596,"url":"https:\/\/eliezerladeira.com.br\/blog\/como-criar-animacoes-paint-e-thread\/","url_meta":{"origin":3606,"position":1},"title":"Como criar anima\u00e7\u00f5es: Paint e\u00a0Thread","author":"admin","date":"","format":false,"excerpt":"import\u00a0java.awt.Color; import\u00a0java.awt.Graphics; import\u00a0java.awt.Insets; import\u00a0java.util.Timer; import\u00a0java.util.TimerTask; import\u00a0javax.swing.JFrame; public\u00a0class\u00a0Animate\u00a0extends\u00a0JFrame\u00a0{ private\u00a0static\u00a0int\u00a0DELAY\u00a0=\u00a0100; Insets\u00a0insets; Color\u00a0colors[]\u00a0=\u00a0{\u00a0Color.RED,\u00a0Color.ORANGE,\u00a0Color.YELLOW,\u00a0Color.GREEN, Color.BLUE,\u00a0Color.MAGENTA\u00a0}; public\u00a0void\u00a0paint(Graphics\u00a0g)\u00a0{ super.paint(g); if\u00a0(insets\u00a0==\u00a0null)\u00a0{ insets\u00a0=\u00a0getInsets(); } \/\/\u00a0Calculate\u00a0each\u00a0time\u00a0in\u00a0case\u00a0of\u00a0resize int\u00a0x\u00a0=\u00a0insets.left; int\u00a0y\u00a0=\u00a0insets.top; int\u00a0width\u00a0=\u00a0getWidth()\u00a0-\u00a0insets.left\u00a0-\u00a0insets.right; int\u00a0height\u00a0=\u00a0getHeight()\u00a0-\u00a0insets.top\u00a0-\u00a0insets.bottom; int\u00a0start\u00a0=\u00a00; int\u00a0steps\u00a0=\u00a0colors.length; int\u00a0stepSize\u00a0=\u00a0360\u00a0\/\u00a0steps; synchronized\u00a0(colors)\u00a0{ for\u00a0(int\u00a0i\u00a0=\u00a00;\u00a0i\u00a0<\u00a0steps;\u00a0i++)\u00a0{ g.setColor(colors[i]); g.fillArc(x,\u00a0y,\u00a0width,\u00a0height,\u00a0start,\u00a0stepSize); start\u00a0+=\u00a0stepSize; } } } public\u00a0void\u00a0go()\u00a0{ TimerTask\u00a0task\u00a0=\u00a0new\u00a0TimerTask()\u00a0{ public\u00a0void\u00a0run()\u00a0{ Color\u00a0c\u00a0=\u00a0colors[0]; synchronized\u00a0(colors)\u00a0{ System.arraycopy(colors,\u00a01,\u00a0colors,\u00a00,\u00a0colors.length\u00a0-\u00a01); colors[colors.length\u00a0-\u00a01]\u00a0=\u00a0c; } repaint(); } }; Timer\u00a0timer\u00a0=\u00a0new\u00a0Timer(); timer.schedule(task,\u00a00,\u00a0DELAY); } public\u00a0static\u00a0void\u00a0main(String\u00a0args[])\u00a0{ Animate\u00a0f\u00a0=\u00a0new\u00a0Animate(); f.setSize(200,\u00a0200); f.show();\u2026","rel":"","context":"Em &quot;Programa\u00e7\u00e3o&quot;","block_context":{"text":"Programa\u00e7\u00e3o","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/tecnologia\/programacao\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3592,"url":"https:\/\/eliezerladeira.com.br\/blog\/noise-image\/","url_meta":{"origin":3606,"position":2},"title":"Noise Image","author":"admin","date":"","format":false,"excerpt":"import\u00a0java.awt.Graphics; import\u00a0java.awt.event.WindowAdapter; import\u00a0java.awt.event.WindowEvent; import\u00a0java.awt.image.BufferedImage; import\u00a0java.awt.image.ColorModel; import\u00a0java.awt.image.DataBuffer; import\u00a0java.awt.image.DataBufferByte; import\u00a0java.awt.image.IndexColorModel; import\u00a0java.awt.image.Raster; import\u00a0java.awt.image.WritableRaster; import\u00a0java.util.Random; import\u00a0javax.swing.JComponent; import\u00a0javax.swing.JFrame; public\u00a0class\u00a0StaticGenerator\u00a0extends\u00a0JComponent\u00a0implements\u00a0Runnable\u00a0{ byte[]\u00a0data; BufferedImage\u00a0image; Random\u00a0random; public\u00a0void\u00a0initialize()\u00a0{ int\u00a0w\u00a0=\u00a0getSize().width,\u00a0h\u00a0=\u00a0getSize().height; int\u00a0length\u00a0=\u00a0((w\u00a0+\u00a07)\u00a0*\u00a0h)\u00a0\/\u00a08; data\u00a0=\u00a0new\u00a0byte[length]; DataBuffer\u00a0db\u00a0=\u00a0new\u00a0DataBufferByte(data,\u00a0length); WritableRaster\u00a0wr\u00a0=\u00a0Raster.createPackedRaster(db,\u00a0w,\u00a0h,\u00a01,\u00a0null); ColorModel\u00a0cm\u00a0=\u00a0new\u00a0IndexColorModel(1,\u00a02,\u00a0new\u00a0byte[]\u00a0{\u00a0(byte)\u00a00,\u00a0(byte)\u00a0255\u00a0},\u00a0new\u00a0byte[]\u00a0{ (byte)\u00a00,\u00a0(byte)\u00a0255\u00a0},\u00a0new\u00a0byte[]\u00a0{\u00a0(byte)\u00a00,\u00a0(byte)\u00a0255\u00a0}); image\u00a0=\u00a0new\u00a0BufferedImage(cm,\u00a0wr,\u00a0false,\u00a0null); random\u00a0=\u00a0new\u00a0Random(); new\u00a0Thread(this).start(); } public\u00a0void\u00a0run()\u00a0{ while\u00a0(true)\u00a0{ random.nextBytes(data); repaint(); try\u00a0{ Thread.sleep(1000\u00a0\/\u00a024); }\u00a0catch\u00a0(InterruptedException\u00a0e)\u00a0{\u00a0\/*\u00a0die\u00a0*\/ } } } public\u00a0void\u00a0paint(Graphics\u00a0g)\u00a0{ if\u00a0(image\u00a0==\u00a0null) initialize(); g.drawImage(image,\u00a00,\u00a00,\u00a0this); } public\u00a0static\u00a0void\u00a0main(String[]\u00a0args)\u00a0{ JFrame\u00a0f\u00a0=\u00a0new\u00a0JFrame(); f.add(new\u00a0StaticGenerator()); f.setSize(300,\u00a0300); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true);\u2026","rel":"","context":"Em &quot;Programa\u00e7\u00e3o&quot;","block_context":{"text":"Programa\u00e7\u00e3o","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/tecnologia\/programacao\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/netsysoft.wordpress.com\/wp-content\/uploads\/2010\/02\/staticgenerator.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":3611,"url":"https:\/\/eliezerladeira.com.br\/blog\/animation-bounce\/","url_meta":{"origin":3606,"position":3},"title":"Animation: bounce","author":"admin","date":"","format":false,"excerpt":"import\u00a0java.awt.BasicStroke; import\u00a0java.awt.BorderLayout; import\u00a0java.awt.Checkbox; import\u00a0java.awt.Color; import\u00a0java.awt.Dimension; import\u00a0java.awt.Font; import\u00a0java.awt.Frame; import\u00a0java.awt.GradientPaint; import\u00a0java.awt.Graphics; import\u00a0java.awt.Graphics2D; import\u00a0java.awt.Image; import\u00a0java.awt.Label; import\u00a0java.awt.Panel; import\u00a0java.awt.RenderingHints; import\u00a0java.awt.Shape; import\u00a0java.awt.Stroke; import\u00a0java.awt.event.ComponentAdapter; import\u00a0java.awt.event.ComponentEvent; import\u00a0java.awt.event.ItemEvent; import\u00a0java.awt.event.ItemListener; import\u00a0java.awt.font.FontRenderContext; import\u00a0java.awt.font.GlyphVector; import\u00a0java.awt.geom.GeneralPath; import\u00a0java.awt.geom.Rectangle2D; import\u00a0java.text.NumberFormat; import\u00a0java.util.Random; import\u00a0javax.swing.JFrame; import\u00a0javax.swing.JPanel; public\u00a0class\u00a0Bouncer\u00a0extends\u00a0JPanel\u00a0implements\u00a0Runnable\u00a0{ private\u00a0boolean\u00a0trucking\u00a0=\u00a0true; private\u00a0long[]\u00a0previousTimes;\u00a0\/\/\u00a0milliseconds private\u00a0int\u00a0previousIndex; private\u00a0boolean\u00a0previousFilled; private\u00a0double\u00a0frameRate;\u00a0\/\/\u00a0frames\u00a0per\u00a0second private\u00a0Image\u00a0image; public\u00a0static\u00a0void\u00a0main(String[]\u00a0args)\u00a0{ final\u00a0Bouncer\u00a0bouncer\u00a0=\u00a0new\u00a0Bouncer(); Frame\u00a0f\u00a0=\u00a0new\u00a0AnimationFrame(bouncer); f.setFont(new\u00a0Font(\"Serif\",\u00a0Font.PLAIN,\u00a012)); f.setSize(200,\u00a0200); Panel\u00a0controls\u00a0=\u00a0new\u00a0Panel(); controls.add(bouncer.createCheckbox(\"Anti.\",\u00a0Bouncer.ANTIALIASING)); controls.add(bouncer.createCheckbox(\"Trans.\",\u00a0Bouncer.TRANSFORM)); controls.add(bouncer.createCheckbox(\"Gradient\",\u00a0Bouncer.GRADIENT)); controls.add(bouncer.createCheckbox(\"Outline\",\u00a0Bouncer.OUTLINE)); controls.add(bouncer.createCheckbox(\"Dotted\",\u00a0Bouncer.DOTTED)); controls.add(bouncer.createCheckbox(\"Axes\",\u00a0Bouncer.AXES)); controls.add(bouncer.createCheckbox(\"Clip\",\u00a0Bouncer.CLIP)); f.add(controls,\u00a0BorderLayout.NORTH); f.setVisible(true);\u2026","rel":"","context":"Em &quot;Programa\u00e7\u00e3o&quot;","block_context":{"text":"Programa\u00e7\u00e3o","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/tecnologia\/programacao\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3587,"url":"https:\/\/eliezerladeira.com.br\/blog\/hypnosis-animation\/","url_meta":{"origin":3606,"position":4},"title":"Hypnosis animation","author":"admin","date":"","format":false,"excerpt":"import\u00a0java.awt.Color; import\u00a0java.awt.Dimension; import\u00a0java.awt.GradientPaint; import\u00a0java.awt.Graphics; import\u00a0java.awt.Graphics2D; import\u00a0java.awt.Paint; import\u00a0java.awt.RenderingHints; import\u00a0java.awt.Shape; import\u00a0java.awt.geom.GeneralPath; import\u00a0javax.swing.JComponent; import\u00a0javax.swing.JFrame; public\u00a0class\u00a0Hypnosis1\u00a0extends\u00a0JComponent\u00a0implements\u00a0Runnable\u00a0{ private\u00a0int[]\u00a0coordinates; private\u00a0int[]\u00a0deltas; private\u00a0Paint\u00a0paint; public\u00a0Hypnosis1(int\u00a0numberOfSegments)\u00a0{ int\u00a0numberOfCoordinates\u00a0=\u00a0numberOfSegments\u00a0*\u00a04\u00a0+\u00a02; coordinates\u00a0=\u00a0new\u00a0int[numberOfCoordinates]; deltas\u00a0=\u00a0new\u00a0int[numberOfCoordinates]; for\u00a0(int\u00a0i\u00a0=\u00a00;\u00a0i\u00a0<\u00a0numberOfCoordinates;\u00a0i++)\u00a0{ coordinates[i]\u00a0=\u00a0(int)\u00a0(Math.random()\u00a0*\u00a0300); deltas[i]\u00a0=\u00a0(int)\u00a0(Math.random()\u00a0*\u00a04\u00a0+\u00a03); if\u00a0(deltas[i]\u00a0>\u00a04) deltas[i]\u00a0=\u00a0-(deltas[i]\u00a0-\u00a03); } paint\u00a0=\u00a0new\u00a0GradientPaint(0,\u00a00,\u00a0Color.blue,\u00a020,\u00a010,\u00a0Color.red,\u00a0true); Thread\u00a0t\u00a0=\u00a0new\u00a0Thread(this); t.start(); } public\u00a0void\u00a0run()\u00a0{ try\u00a0{ while\u00a0(true)\u00a0{ timeStep(); repaint(); Thread.sleep(1000\u00a0\/\u00a024); } }\u00a0catch\u00a0(InterruptedException\u00a0ie)\u00a0{ } } public\u00a0void\u00a0paint(Graphics\u00a0g)\u00a0{ Graphics2D\u00a0g2\u00a0=\u00a0(Graphics2D)\u00a0g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,\u00a0RenderingHints.VALUE_ANTIALIAS_ON); Shape\u00a0s\u00a0=\u00a0createShape(); g2.setPaint(paint); g2.fill(s); g2.setPaint(Color.white); g2.draw(s); } private\u00a0void\u00a0timeStep()\u00a0{ Dimension\u00a0d\u00a0=\u00a0getSize();\u2026","rel":"","context":"Em &quot;Programa\u00e7\u00e3o&quot;","block_context":{"text":"Programa\u00e7\u00e3o","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/tecnologia\/programacao\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3577,"url":"https:\/\/eliezerladeira.com.br\/blog\/is-event-dispatcher-thread\/","url_meta":{"origin":3606,"position":5},"title":"Is Event Dispatcher\u00a0Thread","author":"admin","date":"","format":false,"excerpt":"import\u00a0java.awt.Color; import\u00a0java.awt.Component; import\u00a0java.awt.Dimension; import\u00a0java.awt.event.ActionEvent; import\u00a0java.awt.event.ActionListener; import\u00a0java.util.Random; import\u00a0javax.swing.AbstractAction; import\u00a0javax.swing.ButtonGroup; import\u00a0javax.swing.JButton; import\u00a0javax.swing.JFrame; import\u00a0javax.swing.JLabel; import\u00a0javax.swing.JPanel; import\u00a0javax.swing.JRadioButton; import\u00a0javax.swing.JTable; import\u00a0javax.swing.SwingUtilities; import\u00a0javax.swing.table.AbstractTableModel; import\u00a0javax.swing.table.TableCellRenderer; public\u00a0class\u00a0IsEDTExample\u00a0extends\u00a0JPanel\u00a0{ private\u00a0boolean\u00a0keepRunning; private\u00a0static\u00a0int\u00a0RED\u00a0=\u00a00; private\u00a0static\u00a0int\u00a0BLUE\u00a0=\u00a01; private\u00a0static\u00a0int\u00a0GREEN\u00a0=\u00a02; private\u00a0static\u00a0int\u00a0VARIABLE\u00a0=\u00a03; private\u00a0static\u00a0int\u00a0SIZE\u00a0=\u00a03; private\u00a0int\u00a0threadShade; private\u00a0ColorTableModel\u00a0tableModel=\u00a0new\u00a0ColorTableModel(); private\u00a0Thread\u00a0colorShadeThread; public\u00a0IsEDTExample()\u00a0{ JTable\u00a0table\u00a0=\u00a0new\u00a0JTable(tableModel); table.setRowHeight(100); table.setDefaultRenderer(Object.class,\u00a0new\u00a0ColorRenderer()); add(table); add(new\u00a0JLabel(\"Thread\u00a0Color\u00a0Shade:\")); ButtonGroup\u00a0group\u00a0=\u00a0new\u00a0ButtonGroup(); JRadioButton\u00a0redOption\u00a0=\u00a0new\u00a0JRadioButton(\"Red\"); group.add(redOption); redOption.addActionListener(new\u00a0ActionListener()\u00a0{ public\u00a0void\u00a0actionPerformed(ActionEvent\u00a0e)\u00a0{ threadShade\u00a0=\u00a0RED; } }); JRadioButton\u00a0blueOption\u00a0=\u00a0new\u00a0JRadioButton(\"Blue\"); group.add(blueOption); blueOption.addActionListener(new\u00a0ActionListener()\u00a0{ public\u00a0void\u00a0actionPerformed(ActionEvent\u00a0e)\u00a0{ threadShade\u00a0=\u00a0BLUE; } }); JRadioButton\u00a0greenOption\u00a0=\u00a0new\u00a0JRadioButton(\"Green\"); group.add(greenOption);\u2026","rel":"","context":"Em &quot;Programa\u00e7\u00e3o&quot;","block_context":{"text":"Programa\u00e7\u00e3o","link":"https:\/\/eliezerladeira.com.br\/blog\/category\/tecnologia\/programacao\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/posts\/3606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/comments?post=3606"}],"version-history":[{"count":1,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/posts\/3606\/revisions"}],"predecessor-version":[{"id":3607,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/posts\/3606\/revisions\/3607"}],"wp:attachment":[{"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/media?parent=3606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/categories?post=3606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eliezerladeira.com.br\/blog\/wp-json\/wp\/v2\/tags?post=3606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}