<?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>crusy.net &#187; Java</title>
	<atom:link href="http://blog.crusy.net/category/computer/coding/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.crusy.net</link>
	<description>- Established 1979 -</description>
	<lastBuildDate>Thu, 09 Feb 2012 20:46:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Java: Keylistener auf Konsolenebene</title>
		<link>http://blog.crusy.net/2009/01/29/java-keylistener-auf-konsolenebene/</link>
		<comments>http://blog.crusy.net/2009/01/29/java-keylistener-auf-konsolenebene/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 22:03:43 +0000</pubDate>
		<dc:creator>crusy</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[JLine]]></category>
		<category><![CDATA[Keyevent]]></category>
		<category><![CDATA[Konsole]]></category>

		<guid isPermaLink="false">http://blog.crusy.net/?p=553</guid>
		<description><![CDATA[Man kann GUIs bauen mit Java &#8211; wenn man will. AWT und Swing existieren. Eigentlich ist Java aber konsolenbasiert. Um so erstaunlicher, dass es von Haus aus (immer noch) keine Möglichkeit gibt, einzelne Zeichen einzulesen, ohne nach Eingabe auf Return/Enter warten zu müssen. Das wäre aber nötig, um zB die (komfortable) Steuerung einer Konsolenanwendung mit [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-552" title="java" src="http://blog.crusy.net/wp-content/uploads/2009/01/java.jpg" alt="java" width="400" height="262" /></p>
<p>Man kann <a title="GUI" href="http://de.wikipedia.org/wiki/Graphical_User_Interface" target="_blank">GUI</a>s bauen mit Java &#8211; wenn man will. <a title="AWT" href="http://de.wikipedia.org/wiki/Abstract_Window_Toolkit" target="_blank">AWT</a> und <a title="Swing" href="http://de.wikipedia.org/wiki/Swing_(Java)" target="_blank">Swing</a> existieren. Eigentlich ist Java aber konsolenbasiert. Um so erstaunlicher, dass es von Haus aus (immer noch) keine Möglichkeit gibt, einzelne Zeichen einzulesen, ohne nach Eingabe auf Return/Enter warten zu müssen. Das wäre aber nötig, um zB die (komfortable) Steuerung einer Konsolenanwendung mit der Tastatur zu ermöglichen. Mit dem Package <a title="JLine" href="http://jline.sourceforge.net/" target="_blank">JLine</a> (speziell <a title="readCharacter" href="http://jline.sourceforge.net/apidocs/jline/ConsoleReader.html#readCharacter(char[])" target="_blank">ConsoleReader.readCharacter</a>) kann man das &#8211; hier die &#8220;<a title="Hello World" href="http://de.wikipedia.org/wiki/Hallo-Welt-Programm" target="_blank">Hello World</a>&#8220;-Version:</p>
<blockquote><p>package input;</p>
<p>import jline.ConsoleReader;</p>
<p>public class Keylistener<br />
{<br />
private static final char NOOP    = &#8217;0&#8242;;<br />
private static final char QUIT    = &#8216;q&#8217;;<br />
private static final char UP    = &#8216;w&#8217;;<br />
private static final char DOWN    = &#8216;s&#8217;;<br />
private static final char LEFT    = &#8216;a&#8217;;<br />
private static final char RIGHT    = &#8216;d&#8217;;</p>
<p>private static char[] allowed = { UP, DOWN, LEFT, RIGHT, QUIT };</p>
<p>public static void main( String[] args )<br />
{<br />
char input = NOOP;</p>
<p>try<br />
{<br />
ConsoleReader console = new ConsoleReader();</p>
<p>while( input!=QUIT ){<br />
input = (char)console.readCharacter( allowed );<br />
console.clearScreen();</p>
<p>switch( input ){<br />
case UP:<br />
System.out.println( &#8220;up&#8221; );<br />
break;<br />
case LEFT:<br />
System.out.println( &#8220;left&#8221; );<br />
break;<br />
case DOWN:<br />
System.out.println( &#8220;down&#8221; );<br />
break;<br />
case RIGHT:<br />
System.out.println( &#8220;right&#8221; );<br />
break;<br />
}<br />
}<br />
}<br />
catch( Exception e ){}<br />
}<br />
}</p></blockquote>
<p>HTH &#8211; und sorry für die nicht vorhandene Formatierung <img src='http://blog.crusy.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crusy.net/2009/01/29/java-keylistener-auf-konsolenebene/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Kommunikation zwischen Flash und Java</title>
		<link>http://blog.crusy.net/2008/09/21/kommunikation-zwischen-flash-und-java/</link>
		<comments>http://blog.crusy.net/2008/09/21/kommunikation-zwischen-flash-und-java/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 19:48:17 +0000</pubDate>
		<dc:creator>crusy</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Musik]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[MIDI]]></category>
		<category><![CDATA[Sockets]]></category>
		<category><![CDATA[Socketverbindung]]></category>

		<guid isPermaLink="false">http://blog.crusy.net/?p=250</guid>
		<description><![CDATA[Wer jemals in die Verlegenheit kommt, zwischen Actionscript und Java kommunizieren zu müssen: Hier als eine mögliche Lösung, eine Socket-Verbindung. Zuerst auf Java-Seite: import java.net.ServerSocket; import java.net.Socket; // &#8230; // Port öffnen; Portnummer angeben: ServerSocket mySocketServer = new ServerSocket(2001); // nur Windows-Systeme: Runtime.getRuntime().exec(“startflash.bat”); Socket mySocket = mySocketServer.accept(); // Der Socket-Server kann geschlossen werden, // da [...]]]></description>
			<content:encoded><![CDATA[<p>Wer jemals in die Verlegenheit kommt, zwischen Actionscript und Java kommunizieren zu müssen: Hier als eine mögliche Lösung, eine Socket-Verbindung. Zuerst auf Java-Seite:</p>
<blockquote><p>import java.net.ServerSocket;<br />
import java.net.Socket;</p>
<p>// &#8230;</p>
<p>// Port öffnen; Portnummer angeben:<br />
ServerSocket mySocketServer = new ServerSocket(2001);</p>
<p>// nur Windows-Systeme:<br />
Runtime.getRuntime().exec(“startflash.bat”);<br />
Socket mySocket = mySocketServer.accept();</p>
<p>// Der Socket-Server kann geschlossen werden,<br />
// da die Verbindung besteht<br />
mySocketServer.close();</p></blockquote>
<p>Über diese Verbindung kann nun byteweise geschrieben werden – ein String muss dazu erst in seine Bytes umgewandelt werden:</p>
<blockquote><p>InputStream in = mySocket.getInputStream();<br />
OutputStream out = mySocket.getOutputStream();<br />
BufferedOutputStream buffout = new BufferedOutputStream(out);<br />
String s = „zu schreibender Text“;<br />
buffout.write(s.getBytes()); // 8 bit ASCII<br />
buffout.write(0);<br />
buffout.flush(); // Cache leeren</p></blockquote>
<p>Auf Flash-Seite wird nun auf dem Port &#8220;gelauscht&#8221;:</p>
<blockquote><p>var socket:XMLSocket = new XMLSocket();<br />
socket.onData = function(data) { /* do someting */ };</p>
<p>// Ggf. IP und Portnummer anpassen:<br />
socket.connect(“127.0.0.1”, 2001);</p></blockquote>
<p>Die Verbindung kann von Java aufrecht erhalten werden mittels</p>
<blockquote><p>do{} while (in.read(new byte[1], 0, 1) &gt; -1);</p></blockquote>
<p>bevor sie geschlossen wird:</p>
<blockquote><p>in.close();<br />
out.close();<br />
mySocket.close();</p></blockquote>
<p>Eine &#8220;sinnvollere&#8221; while-Schleife wäre etwa über das Einlesen einer Datei. Wozu das Ganze? Tja, man kann <a title="MIDI VIDI VICI" href="http://crusy.net/files/FH_MedKonzS.pdf" target="_blank">mit Java recht einfach MIDI-Dateien einlesen, diese mit Flash aber besser visualisieren</a> (Details unter dem Link). Links dazu: <a title="FlashMIDI" href="http://www.alexisisaac.net/products/flashMidi/" target="_blank">FlashMIDI</a>, <a title="JMusic" href="http://jmusic.ci.qut.edu.au/" target="_blank">JMusic</a>.</p>
<p>Möglichkeiten zur Visualisierung von Musik in Flash haben Sven und Axel mit ihrer <a title="Videoorgel" href="http://videoorgel.de/" target="_blank">Videoorgel</a> aufgezeigt.</p>
<p>hf.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crusy.net/2008/09/21/kommunikation-zwischen-flash-und-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

