<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Java User Group Münster</title>
	<atom:link href="http://www.jug-muenster.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jug-muenster.de</link>
	<description>Java User Group für Münster und das Münsterland</description>
	<lastBuildDate>Mon, 08 Mar 2010 14:56:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>10.3. &#8211; Java Stammtisch Münster</title>
		<link>http://www.jug-muenster.de/java-stammtisch-muenster-2-446/</link>
		<comments>http://www.jug-muenster.de/java-stammtisch-muenster-2-446/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 12:06:11 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Termine]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[muenster]]></category>
		<category><![CDATA[stammtisch]]></category>

		<guid isPermaLink="false">http://www.jug-muenster.de/?p=446</guid>
		<description><![CDATA[Am 10.3. gibt es wieder den Stammtisch der Java User Group Münster! Ein Angebot für alle an Java, Softwareentwicklung und aktuellen Trends interessierte Personen &#8211; auch PHP, Ruby on Rails Entwickler sind natürlich willkommen!
Der Java Treff für Münster, Osnabrück und Umgebung findet am Mittwoch dem 10.03. ab ca. 18:30 Uhr im Cuba Nova statt. Das [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><!--S-ButtonZ 1.1.5 End--><p>Am 10.3. gibt es wieder den Stammtisch der Java User Group Münster! Ein Angebot für alle an Java, Softwareentwicklung und aktuellen Trends interessierte Personen &#8211; auch PHP, Ruby on Rails Entwickler sind natürlich willkommen!</p>
<p>Der Java Treff für Münster, Osnabrück und Umgebung findet am Mittwoch dem 10.03. ab ca. 18:30 Uhr im Cuba Nova statt. Das Cuba Nova befindets ich in der Achtermannstrasse in der Nähe vom Hauptbahnhof. (3 Minuten zu Fuß, wenn man langsam geht.).<span id="more-446"></span><br />
Für Teilnehmer am Java Stammtisch gibt es einen Sonderpreis fuer Weizen, zudem gibt es auch Aktionsangbote bei Speisen.<br />
Parkmöglichkeiten und Anfahrt zum Java Usergroup Münster Treff: Parkhaus Engelenschanze ist am nächsten gelegen. Ansonsten empfehlen wir die Anreise mit dem Rad oder öffentlichen Verkehrsmitteln &#8211; insbesondere für Weizen-Fans. (<a href="http://maps.google.de/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=cuba+nova+m%C3%BCnster&amp;sll=51.151786,10.415039&amp;sspn=17.844126,28.916016&amp;ie=UTF8&amp;ll=51.957893,7.633417&amp;spn=0.002136,0.00353&amp;z=18" target="_blank">Google Maps Link</a>)</p>
<div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.jug-muenster.de/java-stammtisch-muenster-2-446/";
		var dzone_title = "10.3. &#8211; Java Stammtisch Münster";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="clear:both;">&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.jug-muenster.de/java-stammtisch-muenster-2-446/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JPA-Tage mit Oracle Deutschland im April 2010</title>
		<link>http://www.jug-muenster.de/jpa-tage-mit-oracle-deutschland-im-april-2010-438/</link>
		<comments>http://www.jug-muenster.de/jpa-tage-mit-oracle-deutschland-im-april-2010-438/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 16:01:16 +0000</pubDate>
		<dc:creator>Gerrit</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[EclipseLink]]></category>
		<category><![CDATA[jpa]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.jug-muenster.de/?p=438</guid>
		<description><![CDATA[Oracle Deutschland in Kooperation mit der buschmais GbR laden Sie zu einer kostenlosen eintägigen Veranstaltung ein, um Sie mit den zahlreichen Fähigkeiten von JPA 2.0, EclipseLink und dessen JPA-Implementierung vertraut zu machen. Außerdem möchten wir Ihnen darstellen, wie EclipseLink JPA innerhalb eines konkreten Projektes benutzt wurde, um eine JDO basierte Anwendung zu modernisieren.
Termine:
20.04.2010 Düsseldorf
21.04.2010 Frankfurt [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><!--S-ButtonZ 1.1.5 End--><p>Oracle Deutschland in Kooperation mit der buschmais GbR laden Sie zu einer kostenlosen eintägigen Veranstaltung ein, um Sie mit den zahlreichen Fähigkeiten von JPA 2.0, EclipseLink und dessen JPA-Implementierung vertraut zu machen. Außerdem möchten wir Ihnen darstellen, wie EclipseLink JPA innerhalb eines konkreten Projektes benutzt wurde, um eine JDO basierte Anwendung zu modernisieren.</p>
<p>Termine:<br />
20.04.2010 Düsseldorf<br />
21.04.2010 Frankfurt Dreieich<br />
22.04.2010 München</p>
<p>Weitere Informationen zur Agenda, Anfahrt und Anmeldung finden Sie auf der Oracle Homepage unter:</p>
<p>http://www.oracle.com/global/de/community/adf/einladung_ELJPATage.html</p>
<p>oder auf den Seiten von buschmais:</p>
<p>http://www.buschmais.de/jpatage/</p>
<div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.jug-muenster.de/jpa-tage-mit-oracle-deutschland-im-april-2010-438/";
		var dzone_title = "JPA-Tage mit Oracle Deutschland im April 2010";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="clear:both;">&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.jug-muenster.de/jpa-tage-mit-oracle-deutschland-im-april-2010-438/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Swing Worldclock</title>
		<link>http://www.jug-muenster.de/swing-worldclock-427/</link>
		<comments>http://www.jug-muenster.de/swing-worldclock-427/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 11:48:48 +0000</pubDate>
		<dc:creator>Gerrit</dc:creator>
				<category><![CDATA[Contributed]]></category>
		<category><![CDATA[custom component]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[swing]]></category>

		<guid isPermaLink="false">http://www.jug-muenster.de/?p=427</guid>
		<description><![CDATA[During my trip to JFokus conference last month i was waiting for the train on a german trainstation.
Because i started working on a little swing tool (i will blog about it later) for our usergroup i was in the need for a analog clock.
So the german railway company &#8220;Deutsche Bahn&#8221; has a famous analog clock [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><!--S-ButtonZ 1.1.5 End--><p>During my trip to <a href="http://www.jfokus.se">JFokus</a> conference last month i was waiting for the train on a german trainstation.<br />
Because i started working on a little swing tool (i will blog about it later) for our usergroup i was in the need for a analog clock.<br />
So the german railway company <a href="http://www.bahn.de">&#8220;Deutsche Bahn&#8221;</a> has a famous analog clock on nearly every german trainstation which looks like this:</p>
<div style="float: left; margin: 1.0em 100.0em 2.0em 10.0em;"><img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/DB_Clock.jpg" border="0" alt="DB_Clock.jpg" width="300" height="280" /></div>
<p><span id="more-427"></span>I thought this would be a nice clock to adopt in Swing and started coding. To my surprise that was an easy job and did not took much time to complete. I started with a dark version of this clock because my usergroup swing component was designed in a dark color scheme.</p>
<p>Some days later i remembered that on the iPhone there&#8217;s a worldclock application which also contains analog clocks.<br />
Because the clock was finished already i thought i could not be too hard to implement this kind of worldclock in <a href="http://www.java.com">Java</a>.<br />
So i started this little worldclock project i would like to tell you about here.</p>
<p><strong>Step #1</strong><br />
Creating two versions of the analog clock component.</p>
<div style="float: left; margin: 1.0em 100.0em 2.0em 10.0em;"><img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-3.png" border="0" alt="ishot-3.png" width="411" height="197" align="right" /></div>
<p>The nice thing in <a href="http://www.netbeans.org">NetBeans</a> (and also other gui editors) is that once you generated a swing component you could easily drag&#8217;n drop the component to a JPanel or JFrame etc. like on the following movie (quicktime mov format).</p>
<p><a title="NetBeans_Swing.mov" href="http://www.jug-muenster.de/wp-content/uploads/2010/02/NetBeans_Swing.mov">NetBeans_Swing.mov</a></p>
<p>So you will be able to easily create new components by drag stuff together.</p>
<p><strong>Step #2</strong></p>
<p>Creating a JPanel which contains the clock and the name of the related city. So we need a class that contains cities with their international timezones. Here is a small fraction of my class.</p>
<pre class="brush:java;">public enum City
{
    // -12
    Wellington("Wellington", -43200000),
    Fidschi("Fidschi", -43200000),
    Kamtschatka("Kamtschatka", -43200000),
    // -11
    Magadan("Magadan", -39600000),
    Sachalin("Sachalin", -39600000),
    Salomoninseln("Salmoninseln", -39600000),
    Malekula("Malekula", -39600000),
    // -10
    Wladiwostok("Wladiwostok", -36000000),
    Guam("Guam", -36000000),
    Sydney("Sydney", -36000000),
    Brisbane("Brisbane", -36000000),
    Melbourne("Melbourne", -36000000),
    // -9.5
    Darwin("Darwin", -34200000),
    Adelaide("Adelaide", -34200000),
    // -9
    ...
}</pre>
<p>So if you won&#8217;t find your city in the list&#8230;feel free to add it with it&#8217;s timezone offset.</p>
<p>Additional to that we should show the current time of the day because if it&#8217;s 5:50 AM and 6:10 PM we will get a dark clock in both cases but one is at morning and the other at evening. For this reason i added a JPanel where i draw one out of four different states like follows:</p>
<ul>
<li>Sunrise    <img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-8.png" border="0" alt="ishot-8.png" width="28" height="28" align="center" /></li>
<li>Day         <img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-5.png" border="0" alt="ishot-5.png" width="28" height="28" align="center" /></li>
<li>Sunset     <img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-6.png" border="0" alt="ishot-6.png" width="28" height="28" align="center" /></li>
<li>Night       <img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-7.png" border="0" alt="ishot-7.png" width="28" height="28" align="center" /></li>
</ul>
<p>Furthermore we need a indication for the current day because it might happen, that a timezone is still on the time yesterday or on the time tomorrow. For this i add a little JLabel that indicates these states with</p>
<ul>
<li>yesterday</li>
<li>today</li>
<li>tomorrow</li>
</ul>
<p>Long story short&#8230;this is the JPanel i&#8217;m talking about</p>
<div style="float: left; margin: 1.0em 100.0em 2.0em 10.0em;"><img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-9.png" border="0" alt="ishot-9.png" width="370" height="85" align="right" /></div>
<p><strong>Step #3</strong></p>
<p>Now i created a neat background panel that will take all the different city panels and give them a nice background.<br />
Looks like this</p>
<div style="float: left; margin: 1.0em 100.0em 2.0em 10.0em;"><img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-10.png" border="0" alt="ishot-10.png" width="413" height="194" align="right" /></div>
<p><strong>Step #4</strong></p>
<p>Create a JFrame in NetBeans and drag&#8217;n drop the background panel on to it.<br />
Now you drag&#8217;n drop as many clock panels on the background panel as you would like to see in your worldtime clock and select the city for each panel&#8230;bam&#8230;that&#8217;s it.</p>
<div style="float: left; margin: 1.0em 100.0em 2.0em 10.0em;"><img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-13.png" border="0" alt="ishot-13.png" width="411" height="404" align="right" /></div>
<p><strong>Step #5</strong></p>
<p>R E V I E W . . .</p>
<p>As i used the clock on my desktop i thought it would be nice if the clock itself could show the time of the day like some watches do.</p>
<div style="float: left; margin: 1.0em 100.0em 2.0em 10.0em;"><a href="http://www.jug-muenster.de/wp-content/uploads/2010/02/watch.png" rel="lightbox[427]"><img class="alignnone size-thumbnail wp-image-435" title="watch" src="http://www.jug-muenster.de/wp-content/uploads/2010/02/watch-150x150.png" alt="" width="150" height="150" /></a></div>
<p>And so i started to create another version of the AnalogClock component&#8230;</p>
<p>Therefor i needed a circular shape which represents the day-night cycle. Here is my Fireworks prototype</p>
<div style="float: left; margin: 1.0em 100.0em 2.0em 10.0em;"><img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-14.png" border="0" alt="ishot-14.png" width="108" height="108" align="right" /></div>
<p>Unfortunately there is no out of the box ConicalGradientPaint available in Java2D and so i had to create my own version. I did this by rotating a Line2D around the center of the clock with changing color in dependence on the rotation angle.</p>
<p>This worked out fine and did the job but looked ugly in the code and i thought about creating my own ConicalGradientPaint class.</p>
<p>This was a challange to me because i had no idea about WritableRaster, PaintContext etc. and it took me some time to understand the underlying concept.</p>
<p>Now i have a gradient paint (and you will have it too if you take a look at the source) that i can use in the same way as e.g. LinearGradientPaint or RadialGradientPaint, here a short example</p>
<pre class="brush:java;">// Define the center of the cone
final java.awt.geom.Point2D CENTER = new java.awt.geom.Point2D.Double(IMAGE.getWidth() / 2, IMAGE.getHeight() / 2);

// Define the fractions for the colors
final float[] FRACTIONS =
{
    0.0f,
    0.10f,
    0.14f,
    0.18f,
    0.32f,
    0.68f,
    0.82f,
    0.86f,
    0.90f,
    1.0f
};

// Define the colors for the fractions
final java.awt.Color[] COLORS =
{
    new java.awt.Color(0x000000),
    new java.awt.Color(0x000000),
    new java.awt.Color(0x332200),
    new java.awt.Color(0x664411),
    new java.awt.Color(0x85A4C3),
    new java.awt.Color(0x85A4C3),
    new java.awt.Color(0x004466),
    new java.awt.Color(0x002233),
    new java.awt.Color(0x000000),
    new java.awt.Color(0x000000)
};

// Define the ConicalGradientPaint with the given parameters
final ConicalGradientPaint CONICAL_GRADIENT_PAINT = new ConicalGradientPaint(CENTER, FRACTIONS, COLORS);

// Set the paint
g2.setPaint(CONICAL_GRADIENT_PAINT);

// Fill a ellipse with the gradient
g2.fill(new java.awt.geom.Ellipse2D.Double(0, 0, IMAGE.getWidth(), IMAGE.getHeight()));</pre>
<p>This piece of code leads to something like that</p>
<div style="float: left; margin: 1.0em 100.0em 2.0em 10.0em;"><img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-15.png" border="0" alt="ishot-15.png" width="216" height="184" align="right" /></div>
<p>which is exactly the result i needed.<br />
There&#8217;s one thing which i was not able to fix right now and that is transformation. Because i rotate the image in dependency of the current time i just calculate the angle from the time and say g2.rotate(nightDayAngle)&#8230;</p>
<p>Unfortunately this doesn&#8217;t work with my homebrewed ConicalGradientPaint because it does not take the transformation into account.<br />
My idea was to create the night-day image as a bufferedimage and rotate it every minute about the time dependend angle. Because i could not rotate the gradient i now create the night-day image and rotate it everytime the seconds pointer will move forward.</p>
<p>That means if i could rotate the gradient it would give me a better performance but unfortunately i did not found the time to implement it right now.</p>
<p>Again long story short&#8230;here is the result of the AnalogClock component with it&#8217;s ability to show the current time of the day as graphic.</p>
<p>I created a special version of the clock with semitransparent images to show you were the night-day image is placed behind the clock-background. Here you see both versions&#8230;</p>
<div style="float: left; margin: 1.0em 100.0em 2.0em 10.0em;"><img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-16.png" border="0" alt="ishot-16.png" width="373" height="395" align="right" /></div>
<div style="float: left; margin: 1.0em 100.0em 2.0em 10.0em;"><img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-17.png" border="0" alt="ishot-17.png" width="373" height="395" align="right" /></div>
<p>With this AnalogClock i also created a worldclock that now looks like this</p>
<div style="float: left; margin: 1.0em 100.0em 2.0em 10.0em;"><img src="http://www.jug-muenster.de/wp-content/uploads/2010/02/ishot-18.png" border="0" alt="ishot-18.png" width="414" height="402" align="right" /></div>
<p>Well that&#8217;s it so far, i hope this will be usefull for at least some of you&#8230;</p>
<p>Of course you will get the source as always here&#8230;<a title="WorldClock.zip" href="http://www.jug-muenster.de/wp-content/uploads/2010/02/WorldClock.zip">WorldClock.zip</a></p>
<p>In the netbeans project you will find two main classes, Main.class will start the worldclock without the night-day display and Main2.class will start it with the night-day display. Default is the Main.class.</p>
<p>Follow me on <a href="http://twitter.com/hansolo_">twitter</a> if you like&#8230;</p>
<div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.jug-muenster.de/swing-worldclock-427/";
		var dzone_title = "Swing Worldclock";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="clear:both;">&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.jug-muenster.de/swing-worldclock-427/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
<enclosure url="http://www.jug-muenster.de/wp-content/uploads/2010/02/NetBeans_Swing.mov" length="671499" type="video/quicktime" />
		</item>
		<item>
		<title>Talklets Münster: Google Chrome Extensions</title>
		<link>http://www.jug-muenster.de/talklets-munster-google-chrome-extensions-396/</link>
		<comments>http://www.jug-muenster.de/talklets-munster-google-chrome-extensions-396/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 17:41:11 +0000</pubDate>
		<dc:creator>tobias</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Termine]]></category>

		<guid isPermaLink="false">http://www.jug-muenster.de/?p=396</guid>
		<description><![CDATA[Am 24.02.2010 veranstalten wir im Hörsaal Leo18 auf dem Leonardocampus (http://tinyurl.com/jugmsleo18) den nächsten Vortrag in der Reihe Talklets Münster.
Vortrag:
Google Chrome Extensions
Google veranstaltet eine Serie von Google Chrome Events und Chrome Extension Hackathons.
Im Rahmen der Chrome Events gibt der Vortrag eine Einführung in die Entwicklung von Extensions für Google Chrome.
Speaker: Dr. Jens Trapp (Google)
Vorläufige Agenda:
18:30 &#8211; [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><!--S-ButtonZ 1.1.5 End--><p>Am 24.02.2010 veranstalten wir im Hörsaal Leo18 auf dem Leonardocampus (<a href="http://tinyurl.com/jugmsleo18" target="_blank">http://tinyurl.com/jugmsleo18</a>) den nächsten Vortrag in der Reihe Talklets Münster.</p>
<p><strong>Vortrag:</strong></p>
<p><strong>Google Chrome Extensions</strong></p>
<p>Google veranstaltet eine Serie von Google Chrome Events und Chrome Extension Hackathons.</p>
<p>Im Rahmen der Chrome Events gibt der Vortrag eine Einführung in die Entwicklung von Extensions für Google Chrome.</p>
<p><strong>Speaker: </strong>Dr. Jens Trapp (Google)<br />
<strong>Vorläufige Agenda:</strong><br />
18:30 &#8211; Einlass<br />
19:00 &#8211; Vortrag</p>
<p>Highlight: Es gibt eine Verlosung sowie Goodies, Catering und Getränke sponsored by Google.</p>
<p>Die Google Technology User Group veranstaltet einen weiterführenden Event, den Chrome Extension Hackathon am 27.02.2010.<br />
Mehr Infos unter <a rel="nofollow" href="http://www.ms-gtug.de/ankuendigungen">http://www.ms-gtug.de/ankuendigungen</a>.</p>
<div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.jug-muenster.de/talklets-munster-google-chrome-extensions-396/";
		var dzone_title = "Talklets Münster: Google Chrome Extensions";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="clear:both;">&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.jug-muenster.de/talklets-munster-google-chrome-extensions-396/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Treff: Stammtisch am 10.2.</title>
		<link>http://www.jug-muenster.de/java-treff-stammtisch-am-10-2-389/</link>
		<comments>http://www.jug-muenster.de/java-treff-stammtisch-am-10-2-389/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 14:31:48 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Termine]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[stammtisch]]></category>

		<guid isPermaLink="false">http://www.jug-muenster.de/?p=389</guid>
		<description><![CDATA[Am 10.2. gibt es wieder den offenen Stammtisch der Java User Group Münster! Für alle an Java, Softwareentwicklung und aktuellen Trends interessierte Personen &#8211; auch PHP, Ruby on Rails Entwickler sind natürlich willkommen!
Der Java Treff für Münster, Osnabrück und Umgebung findet am Mittwoch dem 10.02. ab ca. 18:30 Uhr im Cuba Nova statt. Das Cuba [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><!--S-ButtonZ 1.1.5 End--><p>Am 10.2. gibt es wieder den offenen Stammtisch der Java User Group Münster! Für alle an Java, Softwareentwicklung und aktuellen Trends interessierte Personen &#8211; auch PHP, Ruby on Rails Entwickler sind natürlich willkommen!</p>
<p>Der Java Treff für Münster, Osnabrück und Umgebung findet am Mittwoch dem 10.02. ab ca. 18:30 Uhr im Cuba Nova statt. Das Cuba Nova befindets ich in der Achtermannstrasse in der Nähe vom Hauptbahnhof. (3 Minuten zu Fuß, wenn man langsam geht.).<span id="more-389"></span><br />
Für Teilnehmer am Java Stammtisch gibt es einen Sonderpreis fuer Weizen, zudem gibt es auch Aktionsangbote bei Speisen.<br />
Parkmöglichkeiten und Anfahrt zum Java Usergroup Münster Treff: Parkhaus Engelenschanze ist am nächsten gelegen. Ansonsten empfehlen wir die Anreise mit dem Rad oder öffentlichen Verkehrsmitteln &#8211; insbesondere für Weizen-Fans. (<a href="http://maps.google.de/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=cuba+nova+m%C3%BCnster&amp;sll=51.151786,10.415039&amp;sspn=17.844126,28.916016&amp;ie=UTF8&amp;ll=51.957893,7.633417&amp;spn=0.002136,0.00353&amp;z=18" target="_blank">Google Maps Link</a>)</p>
<div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.jug-muenster.de/java-treff-stammtisch-am-10-2-389/";
		var dzone_title = "Java Treff: Stammtisch am 10.2.";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="clear:both;">&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.jug-muenster.de/java-treff-stammtisch-am-10-2-389/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drawing in code (Part 2)</title>
		<link>http://www.jug-muenster.de/drawing-in-code-part-2-2-384/</link>
		<comments>http://www.jug-muenster.de/drawing-in-code-part-2-2-384/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 20:39:55 +0000</pubDate>
		<dc:creator>Gerrit</dc:creator>
				<category><![CDATA[Contributed]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.jug-muenster.de/?p=384</guid>
		<description><![CDATA[Drawing in code:
Part 2 (Transfer the prototype into swing):
So you will find out that this is not magic but only drawing the same elements that we used in the vector drawing programm but now in their Java2D representations. We just create a buffered image with the same size as the prototype. So we could use [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><!--S-ButtonZ 1.1.5 End--><h1>Drawing in code:</h1>
<h2>Part 2 (Transfer the prototype into swing):</h2>
<p>So you will find out that this is not magic but only drawing the same elements that we used in the vector drawing programm but now in their Java2D representations. We just create a buffered image with the same size as the prototype. So we could use the same pixelcoordinates for the shapes and gradients in swing.<br />
<span id="more-384"></span></p>
<table>
<tbody>
<tr>
<td>In <a href="http://www.adobe.com/products/fireworks">Adobe Fireworks</a> you have the ability to move the mousecursor over a pixel and you could see the pixelcoordinate and it&#8217;s color values in a window, this is nothing special but it&#8217;s a needed functionality to grab the positions of all the shapes and the colors of the gradients from the prototype.</p>
<p><strong>Keep in mind that i won&#8217;t show how i pick all these coordinates and colors, but you have to do this</strong></td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-31.png" border="0" alt="ishot-3.png" width="328" height="217" align="right" /></td>
</tr>
</tbody>
</table>
<p><strong>Step 1. &#8211; 5.</strong></p>
<p>First coding the vertical pill which is in principle just a rounded rectangle with a corner radius of it&#8217;s width.</p>
<p>After that we code the rounded rectangle that will represent the bottom if the tube.</p>
<p>Now follows the small ellipse on the top.<br />
After all we combine all of these shapes into one which is really easy in swing.</p>
<p>Just take a look at the code:</p>
<pre class="brush:java;">/**
* Tutorial Step 1. - 5.
* Create the glass tube form
*/
final java.awt.geom.Area TUBE = new java.awt.geom.Area(new java.awt.geom.RoundRectangle2D.Float(1, 8, 86, 136, 86, 86));
final java.awt.geom.Area TUBE_BOTTOM = new java.awt.geom.Area(new java.awt.geom.RoundRectangle2D.Float(1, 75, 86, 70, 30, 30));
final java.awt.geom.Area TUBE_TOP = new java.awt.geom.Area(new java.awt.geom.Ellipse2D.Float(38, 0, 12, 18));
TUBE.add(TUBE_TOP);
TUBE.add(TUBE_BOTTOM);</pre>
<p><strong>Step 6.</strong></p>
<p>Create and apply a horizontal gradient to the tube.</p>
<pre class="brush:java;">/**
* Tutorial Step 6.
* Create and apply the left to right gradient
*/
final java.awt.geom.Point2D START_LEFT = new java.awt.geom.Point2D.Float(0,0);
final java.awt.geom.Point2D STOP_RIGHT = new java.awt.geom.Point2D.Float(86,0);

final float[] FRACTIONS_LEFT_TO_RIGHT =
{
    0.0f,
    0.15f,
    0.4f,
    0.6f,
    0.75f,
    1.0f
};

final java.awt.Color[] COLORS_LEFT_TO_RIGHT =
{
    new java.awt.Color(0.0f, 0.0f, 0.0f, 0.5f),
    new java.awt.Color(0.0f, 0.0f, 0.0f, 0.3f),
    new java.awt.Color(0.0f, 0.0f, 0.0f, 0.1f),
    new java.awt.Color(0.0f, 0.0f, 0.0f, 0.1f),
    new java.awt.Color(0.0f, 0.0f, 0.0f, 0.3f),
    new java.awt.Color(0.0f, 0.0f, 0.0f, 0.5f)
};

final java.awt.LinearGradientPaint LEFT_TO_RIGHT_GRADIENT = new java.awt.LinearGradientPaint(START_LEFT, STOP_RIGHT, FRACTIONS_LEFT_TO_RIGHT, COLORS_LEFT_TO_RIGHT);

g2.setPaint(LEFT_TO_RIGHT_GRADIENT);
g2.fill(TUBE);</pre>
<p><strong>Step 7.</strong></p>
<p>Now create and apply a vertical gradient from top to bottom to the same tube shape.</p>
<pre class="brush:java;">/**
* Tutorial Step 7.
* Create and apply the top to bottom gradient
*/
final java.awt.geom.Point2D START_TOP = new java.awt.geom.Point2D.Float(0,0);
final java.awt.geom.Point2D STOP_BOTTOM = new java.awt.geom.Point2D.Float(0,146);

final float[] FRACTIONS_TOP_TO_BOTTOM =
{
    0.0f,
    0.9f,
    1.0f
};

final java.awt.Color[] COLORS_TOP_TO_BOTTOM =
{
    new java.awt.Color(0.0f, 0.0f, 0.0f, 0.0f),
    new java.awt.Color(0.0f, 0.0f, 0.0f, 0.0f),
    new java.awt.Color(0.0f, 0.0f, 0.0f, 0.6f)
};

final java.awt.LinearGradientPaint TOP_TO_BOTTOM_GRADIENT = new java.awt.LinearGradientPaint(START_TOP, STOP_BOTTOM, FRACTIONS_TOP_TO_BOTTOM, COLORS_TOP_TO_BOTTOM);

g2.setPaint(TOP_TO_BOTTOM_GRADIENT);
g2.fill(TUBE);</pre>
<p><strong>Step 8. &#8211; 9.</strong></p>
<p>So let&#8217;s add the side light effect. So we code two roundedrectangles and subtract one from another. Let&#8217;s take a look at the code:</p>
<pre class="brush:java;">/**
* Tutorial Step 8. - 9.
* Create the side light reflection shape
*/
final java.awt.geom.Area SIDE_LIGHT_EFFECT = new java.awt.geom.Area(new java.awt.geom.RoundRectangle2D.Float(3, 43, 36, 99, 18, 18));
final java.awt.geom.Area EFFECT_SUB = new java.awt.geom.Area(new java.awt.geom.RoundRectangle2D.Float(7, 37, 36, 105, 18, 18));
SIDE_LIGHT_EFFECT.subtract(EFFECT_SUB);</pre>
<p>et voila&#8230;that was easy</p>
<p><strong>Step 10.</strong></p>
<p>Now we have to create and apply a horizontal gradient for this side light effect.</p>
<pre class="brush:java;">/**
* Tutorial Step 10.
* Create and apply the side light gradient
*/
final java.awt.geom.Point2D SIDE_LIGHT_EFFECT_START = new java.awt.geom.Point2D.Float(3, 0);
final java.awt.geom.Point2D SIDE_LIGHT_EFFECT_STOP = new java.awt.geom.Point2D.Float(13, 0);

final float[] SIDE_LIGHT_EFFECT_FRACTIONS =
{
    0.0f,
    1.0f
};

final java.awt.Color[] SIDE_LIGHT_EFFECT_COLORS =
{
    new java.awt.Color(1.0f, 1.0f, 1.0f, 0.5f),
    new java.awt.Color(1.0f, 1.0f, 1.0f, 0.0f)
};

final java.awt.LinearGradientPaint SIDE_LIGHT_EFFECT_GRADIENT = new java.awt.LinearGradientPaint(SIDE_LIGHT_EFFECT_START, SIDE_LIGHT_EFFECT_STOP, SIDE_LIGHT_EFFECT_FRACTIONS, SIDE_LIGHT_EFFECT_COLORS);

g2.setPaint(SIDE_LIGHT_EFFECT_GRADIENT);
g2.fill(SIDE_LIGHT_EFFECT);</pre>
<p><strong>Step 11.</strong></p>
<p>Next thing to code is the ellipse on top of the tube which will be the top light reflection.</p>
<pre class="brush:java;">/**
* Tutorial Step 11.
* Create the top light effect ellipse
*/
final java.awt.geom.Ellipse2D TOP_LIGHT_EFFECT = new java.awt.geom.Ellipse2D.Float(17, 11, 52, 21);</pre>
<p><strong>Step 12.</strong></p>
<p>Now we have to create and apply the gradient for this top light reflection.</p>
<pre class="brush:java;">/**
* Tutorial Step 12.
* Create and apply the top light gradient
*/
final java.awt.geom.Point2D TOP_LIGHT_EFFECT_START = new java.awt.geom.Point2D.Float(0, 11);
final java.awt.geom.Point2D TOP_LIGHT_EFFECT_STOP = new java.awt.geom.Point2D.Float(0, 32);

final float[] TOP_LIGHT_EFFECT_FRACTIONS =
{
    0.0f,
    1.0f
};

final java.awt.Color[] TOP_LIGHT_EFFECT_COLORS =
{
    new java.awt.Color(1.0f, 1.0f, 1.0f, 0.5f),
    new java.awt.Color(1.0f, 1.0f, 1.0f, 0.0f)
};

final java.awt.LinearGradientPaint TOP_LIGHT_EFFECT_GRADIENT = new java.awt.LinearGradientPaint(TOP_LIGHT_EFFECT_START, TOP_LIGHT_EFFECT_STOP, TOP_LIGHT_EFFECT_FRACTIONS, TOP_LIGHT_EFFECT_COLORS);

g2.setPaint(TOP_LIGHT_EFFECT_GRADIENT);
g2.fill(TOP_LIGHT_EFFECT);</pre>
<p><strong>Step 13.</strong></p>
<p>This one is ease, just a small ellipse on top.</p>
<pre class="brush:java;">/**
* Tutorial Step 13.
* Create the small light effect ellipse
*/
final java.awt.geom.Ellipse2D SMALL_TOP_LIGHT_EFFECT = new java.awt.geom.Ellipse2D.Float(39, 3, 4, 6);</pre>
<p><strong>Step 14.</strong></p>
<p>And again create and apply the right gradient for the reflection effect.</p>
<pre class="brush:java;">/**
* Tutorial Step 14.
* Create and apply the small light effect gradient
*/
final java.awt.geom.Point2D SMALL_TOP_LIGHT_EFFECT_START = new java.awt.geom.Point2D.Float(0, 3);
final java.awt.geom.Point2D SMALL_TOP_LIGHT_EFFECT_STOP = new java.awt.geom.Point2D.Float(0, 9);

final float[] SMALL_TOP_LIGHT_EFFECT_FRACTIONS =
{
    0.0f,
    1.0f
};

final java.awt.Color[] SMALL_TOP_LIGHT_EFFECT_COLORS =
{
    new java.awt.Color(1.0f, 1.0f, 1.0f, 0.3f),
    new java.awt.Color(1.0f, 1.0f, 1.0f, 0.0f)
};

final java.awt.LinearGradientPaint SMALL_TOP_LIGHT_EFFECT_GRADIENT = new java.awt.LinearGradientPaint(SMALL_TOP_LIGHT_EFFECT_START, SMALL_TOP_LIGHT_EFFECT_STOP, SMALL_TOP_LIGHT_EFFECT_FRACTIONS, SMALL_TOP_LIGHT_EFFECT_COLORS);

g2.setPaint(SMALL_TOP_LIGHT_EFFECT_GRADIENT);
g2.fill(SMALL_TOP_LIGHT_EFFECT);</pre>
<p><strong>Step 15.</strong></p>
<p>We are coming slowly to the end, now creating the small rectangle for the stripe reflection.</p>
<pre class="brush:java;">/**
* Tutorial Step 15.
* Creating the rectangle for the stripe light effect
*/
final java.awt.geom.Rectangle2D STRIPE_LIGHT_EFFECT = new java.awt.geom.Rectangle2D.Float(13, 46, 62, 1);</pre>
<p><strong>Step 16.</strong></p>
<p>Finally create and apply the gradient for the stripe reflection.</p>
<pre class="brush:java;">/**
* Tutorial Step 16.
* Create and apply the stripe light effect gradient
*/
final java.awt.geom.Point2D STRIPE_LIGHT_EFFECT_START = new java.awt.geom.Point2D.Float(13, 0);
final java.awt.geom.Point2D STRIPE_LIGHT_EFFECT_STOP = new java.awt.geom.Point2D.Float(75, 0);

final float[] STRIPE_LIGHT_EFFECT_FRACTIONS =
{
    0.0f,
    0.5f,
    1.0f
};

final java.awt.Color[] STRIPE_LIGHT_EFFECT_COLORS =
{
    new java.awt.Color(1.0f, 1.0f, 1.0f, 0.0f),
    new java.awt.Color(1.0f, 1.0f, 1.0f, 0.5f),
    new java.awt.Color(1.0f, 1.0f, 1.0f, 0.0f)
};

final java.awt.LinearGradientPaint STRIPE_LIGHT_EFFECT_GRADIENT = new java.awt.LinearGradientPaint(STRIPE_LIGHT_EFFECT_START, STRIPE_LIGHT_EFFECT_STOP, STRIPE_LIGHT_EFFECT_FRACTIONS, STRIPE_LIGHT_EFFECT_COLORS);

g2.setPaint(STRIPE_LIGHT_EFFECT_GRADIENT);
g2.fill(STRIPE_LIGHT_EFFECT);</pre>
<table>
<tbody>
<tr>
<th>Prototype</th>
<th>Swing</th>
</tr>
<tr>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-23.png" border="0" alt="ishot-23.png" width="92" height="150" align="right" /></td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-41.png" border="0" alt="ishot-4.png" width="148" height="231" align="right" /></td>
</tr>
</tbody>
</table>
<h3>Conclusion:</h3>
<p>As you can see transfering an image to swing is not rocket-science. To achieve this you have to get a feeling for drawing effects like light reflections, shadows etc. (and i&#8217;m really not a designer).</p>
<p>So my recommendation is follow design blogs, play with your drawing program or just walk around with open eyes and take pictures of intersting things&#8230;there are so many of them&#8230;</p>
<p>Please find the related Netbeans project here <a title="DrawInCode.zip" href="http://www.jug-muenster.de/wp-content/uploads/2010/01/DrawInCode.zip">DrawInCode.zip</a></p>
<p>Now enjoy swinging&#8230;</p>
<div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.jug-muenster.de/drawing-in-code-part-2-2-384/";
		var dzone_title = "Drawing in code (Part 2)";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="clear:both;">&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.jug-muenster.de/drawing-in-code-part-2-2-384/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Drawing in code (Part 1)</title>
		<link>http://www.jug-muenster.de/drawing-in-code-part-1-379/</link>
		<comments>http://www.jug-muenster.de/drawing-in-code-part-1-379/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 20:29:35 +0000</pubDate>
		<dc:creator>Gerrit</dc:creator>
				<category><![CDATA[Contributed]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.jug-muenster.de/?p=379</guid>
		<description><![CDATA[Drawing in code:
Part 1 (Drawing the prototype):
After i published my little fun swing nixieclock i got a lot of requests on how i transferred the image into swing.
Because i remember when i was starting swing development i asked myself the same questions when i saw the amazing work of swing/design guru&#8217;s like Kirill Grouchnikov, Romain [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><!--S-ButtonZ 1.1.5 End--><h1>Drawing in code:</h1>
<h2>Part 1 (Drawing the prototype):</h2>
<p>After i published my little fun swing nixieclock i got a lot of requests on how i transferred the image into swing.<br />
Because i remember when i was starting swing development i asked myself the same questions when i saw the amazing work of swing/design guru&#8217;s like <a href="http://www.pushing-pixels.org">Kirill Grouchnikov</a>, <a href="http://www.curious-creature.org/">Romain Guy</a>, <a href="http://www.joshondesign.com/">Joshua Marinacci</a>, <a href="http://graphics-geek.blogspot.com/">Chet Haase</a>, and others.<br />
Well in the meantime i figured out how  to do this and find a workflow that i would like to share here. By the way this is really nothing compared to the things these swing/design guru&#8217;s are able to do.</p>
<p>So here we go, first of all i have one good advice for you <strong>&#8220;Know your tools&#8221;</strong>,<br />
which means not only java and swing but also your graphics program.</p>
<p>So i&#8217;m using <a href="http://www.adobe.com/products/fireworks">Adobe Fireworks</a> for that but you could also use any other kind of graphics program like <a href="http://www.adobe.com/products/photoshop">Adobe Photoshop</a>, <a href="http://www.gimp.org">Gimp</a>, <a href="http://www.inkscape.org">Inkscape</a> etc.</p>
<p>I will start the tutorial with the drawing of the tube in <a href="http://www.adobe.com/products/fireworks">Adobe Fireworks</a> because it makes coding in swing so much easier if you know how to draw it in a graphics program. So the first part will be focussed on the drawing and the second part will explain how to draw all the different points in java2d/swing:<span id="more-379"></span></p>
<table>
<tbody>
<tr>
<td>So we would like to create a nixie glass tube in swing that should look similar to this but to keep it simple i will focus only on the glass tube itself without any numbers or logic etc.</p>
<p>Once you understand the way of doing this you could easily adopt these technique to everything you would like to do (if there is a equivalent in swing).</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/NixieTubeVorlage.jpg" border="0" alt="NixieTubeVorlage.jpg" width="112" height="250" align="right" /></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td><strong>Step 1. </strong></p>
<p>Draw a vertical pill which will be the main body of the tube.</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-11.png" border="0" alt="ishot-1.png" width="140" height="225" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 2. </strong></p>
<p>Draw a rounded rectangle that will represent the bottom if the tube.</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-21.png" border="0" alt="ishot-2.png" width="140" height="225" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 3.</strong></p>
<p>Merge this two shapes into one shape.</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-3.png" border="0" alt="ishot-3.png" width="140" height="225" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 4.</strong></p>
<p>Now draw a little ellipse on top of the tube.</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-4.png" border="0" alt="ishot-4.png" width="140" height="225" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 5.</strong></p>
<p>Again merge the two shapes into one.</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-5.png" border="0" alt="ishot-5.png" width="140" height="225" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 6.</strong></p>
<p>Fill the tube with a horizontal gradient from left to right where you use black with different values for transparency.</p>
<table>
<tbody>
<tr>
<th> Position</th>
<th> Transparency</th>
</tr>
<tr>
<td>0%</td>
<td>60%</td>
</tr>
<tr>
<td>15%</td>
<td>20%</td>
</tr>
<tr>
<td>75%</td>
<td>20%</td>
</tr>
<tr>
<td>100%</td>
<td>60%</td>
</tr>
</tbody>
</table>
</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-61.png" border="0" alt="ishot-6.png" width="140" height="225" align="right" /><br />
<img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-7.png" border="0" alt="ishot-7.png" width="120" height="80" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 7.</strong></p>
<p>Now fill the same tube shape again with a vertical gradient from top to bottom again using black with different values for transparency.</p>
<table>
<tbody>
<tr>
<th> Position</th>
<th> Transparency</th>
</tr>
<tr>
<td>0%</td>
<td>0%</td>
</tr>
<tr>
<td>90%</td>
<td>0%</td>
</tr>
<tr>
<td>100%</td>
<td>60%</td>
</tr>
</tbody>
</table>
</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-10.png" border="0" alt="ishot-10.png" width="140" height="225" align="right" /><br />
<img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-9.png" border="0" alt="ishot-9.png" width="120" height="80" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 8.</strong></p>
<p>Now we will add some reflection effects. First of all a side light reflection. Therefor create a vertical rounded rectangle. Than create a second rounded rectangle which is slightly higher than the first one and place it a little bit shifted to the right of the first one.</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-111.png" border="0" alt="ishot-11.png" width="140" height="225" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 9.</strong></p>
<p>Subtract the second rectangle from the first one.</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-12.png" border="0" alt="ishot-12.png" width="140" height="225" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 10.</strong></p>
<p>Now fill this shape with a horizontal gradient from left to right with white of with different values for transparency.</p>
<table>
<tbody>
<tr>
<th> Position</th>
<th> Transparency</th>
</tr>
<tr>
<td>0%</td>
<td>60%</td>
</tr>
<tr>
<td>100%</td>
<td>0%</td>
</tr>
</tbody>
</table>
</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-14.png" border="0" alt="ishot-14.png" width="140" height="225" align="right" /><br />
<img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-13.png" border="0" alt="ishot-13.png" width="120" height="80" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 11.</strong></p>
<p>Create a ellipse on top of the tube which will be the top light reflection.</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-15.png" border="0" alt="ishot-15.png" width="140" height="225" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 12.</strong></p>
<p>Fill this ellipse with a vertical gradient from top to bottom with white with different values for transparency.</p>
<table>
<tbody>
<tr>
<th> Position</th>
<th> Transparency</th>
</tr>
<tr>
<td>0%</td>
<td>60%</td>
</tr>
<tr>
<td>100%</td>
<td>0%</td>
</tr>
</tbody>
</table>
</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-17.png" border="0" alt="ishot-17.png" width="140" height="225" align="right" /><br />
<img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-16.png" border="0" alt="ishot-16.png" width="120" height="80" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 13.</strong></p>
<p>Next add a small ellipse on the very top of the tube.</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-18.png" border="0" alt="ishot-18.png" width="140" height="225" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 14.</strong></p>
<p>Fill this ellipse also with a vertical gradient from top to bottom with white with different values for transparency.</p>
<table>
<tbody>
<tr>
<th> Position</th>
<th> Transparency</th>
</tr>
<tr>
<td>0%</td>
<td>60%</td>
</tr>
<tr>
<td>100%</td>
<td>0%</td>
</tr>
</tbody>
</table>
</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-19.png" border="0" alt="ishot-19.png" width="140" height="225" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 15.</strong></p>
<p>Finally create a small horizontal rectangle on the top of the tube.</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-20.png" border="0" alt="ishot-20.png" width="140" height="225" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Step 16.</strong></p>
<p>Fill this rectangle with a horizontal gradient from left to right with different values for transparency</p>
<table>
<tbody>
<tr>
<th> Position</th>
<th> Transparency</th>
</tr>
<tr>
<td>0%</td>
<td>0%</td>
</tr>
<tr>
<td>50%</td>
<td>60%</td>
</tr>
<tr>
<td>100%</td>
<td>0%</td>
</tr>
</tbody>
</table>
</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-22.png" border="0" alt="ishot-22.png" width="140" height="225" align="right" /><br />
<img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-211.png" border="0" alt="ishot-21.png" width="120" height="80" align="right" /></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>That&#8217;s it&#8230; so we created a nice looking glass tube just with combination of some shapes and gradients.</p>
<p>In the second part of the tutorial i&#8217;ll explain the representation of all these shapes and gradients in code&#8230;so hang on&#8230;</td>
<td><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-23.png" border="0" alt="ishot-23.png" width="92" height="150" align="right" /></td>
</tr>
</tbody>
</table>
<p>Part two: <a href="http://www.jug-muenster.de/drawing-in-code-part-2-2-384/">http://www.jug-muenster.de/drawing-in-code-part-2-2-384/</a></p>
<div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.jug-muenster.de/drawing-in-code-part-1-379/";
		var dzone_title = "Drawing in code (Part 1)";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="clear:both;">&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.jug-muenster.de/drawing-in-code-part-1-379/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Talklets Münster: JSF 2.0 mit Matthias Wessendorf und Bernd Bohmann</title>
		<link>http://www.jug-muenster.de/talklets-munster-jsf-2-0-mit-matthias-wessendorf-253/</link>
		<comments>http://www.jug-muenster.de/talklets-munster-jsf-2-0-mit-matthias-wessendorf-253/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 18:00:47 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[Termine]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[java server faces]]></category>
		<category><![CDATA[jsf]]></category>

		<guid isPermaLink="false">http://www.jug-muenster.de/?p=253</guid>
		<description><![CDATA[Am Mittwoch dem 27.01.2010 finden im Hörsaal Leo18 auf dem Leonardocampus (am Johann-Krane-Weg zwischen der Eishalle und dem Technologiepark http://tinyurl.com/jugmsleo18) im Rahmen unserer Vortragsreihe &#8220;Talklets Münster&#8221; der nächste Vortrag statt.
Vortrag:
JavaServer Faces 2.0
Seit dem Sommer 2009 ist die JSF 2.0 Version &#8220;final&#8221;. Der Vortrag stellt die wesentlichen Bestandteile der neuen Version vor. Anschließend gibt es einen [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><!--S-ButtonZ 1.1.5 End--><p>Am Mittwoch dem 27.01.2010 finden im Hörsaal Leo18 auf dem Leonardocampus (am Johann-Krane-Weg zwischen der Eishalle und dem Technologiepark <a href="http://tinyurl.com/jugmsleo18">http://tinyurl.com/jugmsleo18</a>) im Rahmen unserer Vortragsreihe &#8220;Talklets Münster&#8221; der nächste Vortrag statt.</p>
<p><strong>Vortrag:</strong><br />
<strong>JavaServer Faces 2.0</strong><br />
Seit dem Sommer 2009 ist die JSF 2.0 Version &#8220;final&#8221;. Der Vortrag stellt die wesentlichen Bestandteile der neuen Version vor. Anschließend gibt es einen aktuellen Status zu Apache MyFaces 2.0, dass eine Alternative zur SUN RI (Mojarra) darstellt.</p>
<p><strong>Referenten:</strong></p>
<p><strong>Matthias Wessendorf</strong><br />
arbeitet für Oracle an einer Server-Side-Push (aka Comet) Lösung für die ADF Faces JSF Bibliothek. Er ist PMC Chair von Apache MyFaces. Matthias blogt regelmäßig auf <a href="http://matthiaswessendorf.wordpress.com">http://matthiaswessendorf.wordpress.com</a> und twittert unter <a href="http://twitter.com/mwessendorf">@mwessendorf</a></p>
<p><strong>Bernd Bohmann</strong><br />
arbeitet für die IRIAN Deutschland GmbH als Software-Entwickler und Berater. Er ist ein PMC Mitglied der Apache MyFaces-Projekt.</p>
<p><strong>Agenda:</strong><br />
| 18:30 | Einlass<br />
| 19:00 | Vortrag: JavaServer Faces 2.0</p>
<p>Damit wir in etwa die Anzahl der Besucher abschätzen können wäre es schön wenn sich alle Interessenten unverbindlich unter <a href="http://tinyurl.com/talkletsanmeldung">http://tinyurl.com/talkletsanmeldung</a> anmelden würden.</p>
<p><strong>UPDATE 2:</strong> Falls Ihr die Demo oder die Folien noch mal ansehen  wollt:<span id="more-253"></span></p>
<p>Folien als <a href="http://www.jug-muenster.de/wp-content/uploads/2010/01/bohmann_wessendorf_jsf2_cdi.pdf">PDF</a> oder bei <a href="http://www.slideshare.net/mwessendorf/jsf2">slideshare </a></p>
<p>Man braucht Apache OpenWebBeans (trunk), den gibts hier:</p>
<p>http://svn.apache.org/repos/asf/openwebbeans/trunk/</p>
<p>(mvn install)</p>
<p>Dann MyFaces das BETA (noch nicht raus). Trunk ist hier:</p>
<p>http://svn.apache.org/repos/asf/myfaces/current20/</p>
<p>(mvn install)</p>
<p>Demo ist hier:</p>
<p>http://facesgoodies.googlecode.com/svn/MS/trunk/pom.xml</p>
<p>starten =&gt; mvn -Pmyfaces</p>
<p>Fotos:</p>
<p><a href="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3928.jpg" rel="lightbox[253]"><img class="alignnone size-medium wp-image-401" title="DSC_3928" src="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3928-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p><a href="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3974.jpg" rel="lightbox[253]"><img class="alignnone size-medium wp-image-402" title="DSC_3974" src="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3974-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p><a href="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3935.jpg" rel="lightbox[253]"><img class="alignnone size-medium wp-image-403" title="DSC_3935" src="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3935-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p><a href="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3956.jpg" rel="lightbox[253]"><img class="alignnone size-medium wp-image-404" title="DSC_3956" src="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3956-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p><a href="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3981.jpg" rel="lightbox[253]"><img class="alignnone size-medium wp-image-405" title="DSC_3981" src="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3981-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p><a href="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3973.jpg" rel="lightbox[253]"><img class="alignnone size-medium wp-image-406" title="DSC_3973" src="http://www.jug-muenster.de/wp-content/uploads/2010/01/DSC_3973-300x199.jpg" alt="" width="300" height="199" /></a></p>
<div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.jug-muenster.de/talklets-munster-jsf-2-0-mit-matthias-wessendorf-253/";
		var dzone_title = "Talklets Münster: JSF 2.0 mit Matthias Wessendorf und Bernd Bohmann";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="clear:both;">&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.jug-muenster.de/talklets-munster-jsf-2-0-mit-matthias-wessendorf-253/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Swing NixieClock</title>
		<link>http://www.jug-muenster.de/swing-nixieclock-321/</link>
		<comments>http://www.jug-muenster.de/swing-nixieclock-321/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 04:52:43 +0000</pubDate>
		<dc:creator>Gerrit</dc:creator>
				<category><![CDATA[Contributed]]></category>

		<guid isPermaLink="false">http://www.jug-muenster.de/?p=321</guid>
		<description><![CDATA[During my search for some i²c stuff i found these nixie tube clocks. So my first idea was to create such a clock in Swing.
Here is the original i took as master&#8230;
To my surprise it was really not a big deal to complete this task and it tooks me around 4 hours until i got [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><!--S-ButtonZ 1.1.5 End--><p>During my search for some i²c stuff i found <a href="http://www.electricstuff.co.uk/nixiegallery.html">these</a> nixie tube clocks. So my first idea was to create such a clock in <a href="http://en.wikipedia.org/wiki/Swing_(Java)"><strong>Swing</strong></a>.<br />
Here is the original i took as master&#8230;</p>
<p>To my surprise it was really not a big deal to complete this task and it tooks me around 4 hours until i got my first homebrew swing nixie clock.<br />
Because i received some question on how i did this i will shortly explain it here:<span id="more-321"></span></p>
<ul>
<li>First I created a prototype in <a href="http://www.adobe.com/products/fireworks/">Adobe Fireworks</a><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-2.png" border="0" alt="ishot-2.png" width="122" height="207" align="left" /></li>
<li>Second step was creating a javabean and transfer the drawing from Fireworks to Swing</li>
<li>Third step was creating a JFrame which contains the clock logic and 6 of the nixie number components (2 hour, 2 minutes and 2 seconds)</li>
</ul>
<p>And that&#8217;s the result:</p>
<p><img src="http://www.jug-muenster.de/wp-content/uploads/2010/01/ishot-1.png" border="0" alt="ishot-1.png" width="600" height="167" align="left" /></p>
<p>Of course the second step is the one which takes the most of the time because you have to define all the geometric elements in Swing, pick all the colors from the prototype and create gradients out of it etc.</p>
<p>There is of course still enough place for improvements but for me it looks ok and it was worth the time that i spent on creating it&#8230;</p>
<p>So as always i attached the sourcecode as <strong>Netbeans</strong> project (<a title="NixieClock.zip" href="http://www.jug-muenster.de/wp-content/uploads/2010/01/NixieClock.zip">NixieClock.zip</a>)&#8230;enjoy swinging&#8230;</p>
<p>If you like <a href="http://twitter.com/hansolo_">follow</a> me on twitter&#8230;</p>
<p><a href="http://www.jug-muenster.de/wp-content/uploads/2010/01/l_1764_873_53F22EF9-9935-45A5-ABFA-6E63A6190CE0.jpeg" rel="lightbox[321]"><img class="alignnone size-full wp-image-364" src="http://www.jug-muenster.de/wp-content/uploads/2010/01/l_1764_873_53F22EF9-9935-45A5-ABFA-6E63A6190CE0.jpeg" alt="" width="300" height="148" /></a></p>
<div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.jug-muenster.de/swing-nixieclock-321/";
		var dzone_title = "Swing NixieClock";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="clear:both;">&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.jug-muenster.de/swing-nixieclock-321/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Java Usergroup Stammtisch: 13.01.10</title>
		<link>http://www.jug-muenster.de/java-usergroup-stammtisch-13-01-10-314/</link>
		<comments>http://www.jug-muenster.de/java-usergroup-stammtisch-13-01-10-314/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 09:24:01 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Termine]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[stammtisch]]></category>

		<guid isPermaLink="false">http://www.jug-muenster.de/?p=314</guid>
		<description><![CDATA[Die Java Usergroup Münsterland freut sich den ersten Stammtisch in 2010 einen Stammtisch anzubieten. Für alle an Java, Softwareentwicklung und aktuellen Trends interessierte Personen &#8211; auch PHP, Ruby on Rails Entwickler sind natürlich willkommen!
Der Java Treff für Münster, Osnabrück und Umgebung findet am Mittwoch dem 13.01. ab ca. 18:30 Uhr im Cuba Nova statt. Das [...]]]></description>
			<content:encoded><![CDATA[<!--S-ButtonZ 1.1.5 Start--><!--S-ButtonZ 1.1.5 End--><p>Die Java Usergroup Münsterland freut sich den ersten Stammtisch in 2010 einen Stammtisch anzubieten. Für alle an Java, Softwareentwicklung und aktuellen Trends interessierte Personen &#8211; auch PHP, Ruby on Rails Entwickler sind natürlich willkommen!</p>
<p>Der Java Treff für Münster, Osnabrück und Umgebung findet am Mittwoch dem 13.01. ab ca. 18:30 Uhr im Cuba Nova statt. Das Cuba Nova befindets ich in der Achtermannstrasse in der Nähe vom Hauptbahnhof. (3 Minuten zu Fuß, wenn man langsam geht.).<span id="more-314"></span><br />
Für Teilnehmer am Java Stammtisch gibt es einen Sonderpreis fuer Weizen, zudem gibt es auch Aktionsangbote bei Speisen.<br />
Parkmöglichkeiten und Anfahrt zum Java Usergroup Münster Treff: Parkhaus Engelenschanze ist am nächsten gelegen. Ansonsten empfehlen wir die Anreise mit dem Rad oder öffentlichen Verkehrsmitteln &#8211; insbesondere für Weizen-Fans. (<a href="http://maps.google.de/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=cuba+nova+m%C3%BCnster&amp;sll=51.151786,10.415039&amp;sspn=17.844126,28.916016&amp;ie=UTF8&amp;ll=51.957893,7.633417&amp;spn=0.002136,0.00353&amp;z=18" target="_blank">Google Maps Link</a>)</p>
<div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://www.jug-muenster.de/java-usergroup-stammtisch-13-01-10-314/";
		var dzone_title = "Java Usergroup Stammtisch: 13.01.10";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><div style="clear:both;">&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.jug-muenster.de/java-usergroup-stammtisch-13-01-10-314/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
