<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Java on cynar.ski</title>
    <link>https://cynar.ski/category/java/</link>
    <description>Recent content in Java on cynar.ski</description>
    <generator>Hugo -- 0.146.7</generator>
    <language>pl-PL</language>
    <lastBuildDate>Mon, 29 Jun 2009 01:29:58 +0000</lastBuildDate>
    <atom:link href="https://cynar.ski/category/java/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Java, GUI  i thread’s</title>
      <link>https://cynar.ski/2009/06/29/java-gui-i-threads/</link>
      <pubDate>Mon, 29 Jun 2009 01:29:58 +0000</pubDate>
      <guid>https://cynar.ski/2009/06/29/java-gui-i-threads/</guid>
      <description>&lt;p&gt;Klasycznie tworząc aplikacje GUI musimy mieć na uwadze jej wielowątkowątkowość. W &lt;strong&gt;ActionListener&lt;/strong&gt; implementować prywatne klasy runnable, thread etc.. metoda sprawdzona i działająca jednak w Java 6 mamy coś nowego, co pozwala na szybkie &amp;ldquo;oblikanie&amp;rdquo; wątków. Mowa tutaj o &lt;strong&gt;SwingWorker&lt;/strong&gt;, świetna funkcjonalność - zajmuje się pbsługą wątków za nas, np:&lt;/p&gt;
&lt;p&gt;Przykład &lt;strong&gt;ActionPerformed&lt;/strong&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;jButton1ActionPerformed&lt;/span&gt;(java.&lt;span style=&#34;color:#a6e22e&#34;&gt;awt&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;event&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;ActionEvent&lt;/span&gt; evt)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(praca &lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;praca.&lt;span style=&#34;color:#a6e22e&#34;&gt;isDone&lt;/span&gt;()) &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	praca  &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; pracuje();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	praca.&lt;span style=&#34;color:#a6e22e&#34;&gt;execute&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Implementacja klasy &lt;strong&gt;pracuje&lt;/strong&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;pracuje&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;extends&lt;/span&gt; SwingWorker
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#a6e22e&#34;&gt;@Override&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; Integer &lt;span style=&#34;color:#a6e22e&#34;&gt;doInBackground&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;//Robie duzo obliczen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		wynik &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; jakiesobliczenia();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; wynik;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#a6e22e&#34;&gt;@Override&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;protected&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;done&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		System.&lt;span style=&#34;color:#a6e22e&#34;&gt;out&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;println&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;done&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		jLabel5.&lt;span style=&#34;color:#a6e22e&#34;&gt;setText&lt;/span&gt;( &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Zrobione&amp;#34;&lt;/span&gt; );
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Czyś nie przyjemnie ?
Mnie się bardzo ta metoda podoba.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Klasycznie tworząc aplikacje GUI musimy mieć na uwadze jej wielowątkowątkowość. W <strong>ActionListener</strong> implementować prywatne klasy runnable, thread etc.. metoda sprawdzona i działająca jednak w Java 6 mamy coś nowego, co pozwala na szybkie &ldquo;oblikanie&rdquo; wątków. Mowa tutaj o <strong>SwingWorker</strong>, świetna funkcjonalność - zajmuje się pbsługą wątków za nas, np:</p>
<p>Przykład <strong>ActionPerformed</strong>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#66d9ef">private</span> <span style="color:#66d9ef">void</span> <span style="color:#a6e22e">jButton1ActionPerformed</span>(java.<span style="color:#a6e22e">awt</span>.<span style="color:#a6e22e">event</span>.<span style="color:#a6e22e">ActionEvent</span> evt)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">if</span>(praca <span style="color:#f92672">!=</span> <span style="color:#66d9ef">null</span> <span style="color:#f92672">&amp;&amp;</span> <span style="color:#f92672">!</span>praca.<span style="color:#a6e22e">isDone</span>()) <span style="color:#66d9ef">return</span>;
</span></span><span style="display:flex;"><span>	praca  <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> pracuje();
</span></span><span style="display:flex;"><span>	praca.<span style="color:#a6e22e">execute</span>();
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Implementacja klasy <strong>pracuje</strong>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#66d9ef">private</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">pracuje</span> <span style="color:#66d9ef">extends</span> SwingWorker
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">@Override</span>
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">public</span> Integer <span style="color:#a6e22e">doInBackground</span>()
</span></span><span style="display:flex;"><span>	{
</span></span><span style="display:flex;"><span>		<span style="color:#75715e">//Robie duzo obliczen</span>
</span></span><span style="display:flex;"><span>		wynik <span style="color:#f92672">=</span> jakiesobliczenia();
</span></span><span style="display:flex;"><span>		<span style="color:#66d9ef">return</span> wynik;
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">@Override</span>
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">protected</span> <span style="color:#66d9ef">void</span> <span style="color:#a6e22e">done</span>()
</span></span><span style="display:flex;"><span>	{
</span></span><span style="display:flex;"><span>		System.<span style="color:#a6e22e">out</span>.<span style="color:#a6e22e">println</span>(<span style="color:#e6db74">&#34;done&#34;</span>);
</span></span><span style="display:flex;"><span>		jLabel5.<span style="color:#a6e22e">setText</span>( <span style="color:#e6db74">&#34;Zrobione&#34;</span> );
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Czyś nie przyjemnie ?
Mnie się bardzo ta metoda podoba.</p>
]]></content:encoded>
    </item>
    <item>
      <title>JavaFX – jeszcze trochę i będzie efektywniej.</title>
      <link>https://cynar.ski/2009/06/28/javafx-jeszcze-troche-i-bedzie-efektywniej/</link>
      <pubDate>Sun, 28 Jun 2009 17:27:02 +0000</pubDate>
      <guid>https://cynar.ski/2009/06/28/javafx-jeszcze-troche-i-bedzie-efektywniej/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://javafx.com&#34;&gt;JavaFX&lt;/a&gt; daje bardzo duże możliwości budowania RIA, szybko i stosunkowo łatwo, a po zobaczeni efektów:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://blip.tv/file/get/Joshmarinacci-JavaFXParticleORama273.flv&#34;&gt;&lt;img alt=&#34;Video thumbnail. Click to play&#34; loading=&#34;lazy&#34; src=&#34;http://blip.tv/file/get/Joshmarinacci-JavaFXParticleORama273.flv.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://blip.tv/file/get/Joshmarinacci-JavaFXParticleORama273.flv&#34;&gt;Click To Play&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;czekam na kod ;)&lt;/p&gt;
&lt;p&gt;Enjoy.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><a href="http://javafx.com">JavaFX</a> daje bardzo duże możliwości budowania RIA, szybko i stosunkowo łatwo, a po zobaczeni efektów:</p>
<p><a href="http://blip.tv/file/get/Joshmarinacci-JavaFXParticleORama273.flv"><img alt="Video thumbnail. Click to play" loading="lazy" src="http://blip.tv/file/get/Joshmarinacci-JavaFXParticleORama273.flv.jpg"></a><br>
<a href="http://blip.tv/file/get/Joshmarinacci-JavaFXParticleORama273.flv">Click To Play</a></p>
<p>czekam na kod ;)</p>
<p>Enjoy.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
