<?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>ゆっちのＢｌｏｇ &#187; Java</title>
	<atom:link href="http://yucchi-ja.com/wordpress/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://yucchi-ja.com/wordpress</link>
	<description>☆*:･°★:*:･°　ゆっちの秘密研究所　☆*:･°★:*:･°</description>
	<lastBuildDate>Sun, 25 Mar 2012 11:07:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>意地悪なユニコードエスケープ</title>
		<link>http://yucchi-ja.com/wordpress/2011/09/21/%e6%84%8f%e5%9c%b0%e6%82%aa%e3%81%aa%e3%83%a6%e3%83%8b%e3%82%b3%e3%83%bc%e3%83%89%e3%82%a8%e3%82%b9%e3%82%b1%e3%83%bc%e3%83%97/</link>
		<comments>http://yucchi-ja.com/wordpress/2011/09/21/%e6%84%8f%e5%9c%b0%e6%82%aa%e3%81%aa%e3%83%a6%e3%83%8b%e3%82%b3%e3%83%bc%e3%83%89%e3%82%a8%e3%82%b9%e3%82%b1%e3%83%bc%e3%83%97/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 03:23:45 +0000</pubDate>
		<dc:creator>Yucchi</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://yucchi-ja.com/wordpress/2011/09/21/%e6%84%8f%e5%9c%b0%e6%82%aa%e3%81%aa%e3%83%a6%e3%83%8b%e3%82%b3%e3%83%bc%e3%83%89%e3%82%a8%e3%82%b9%e3%82%b1%e3%83%bc%e3%83%97/</guid>
		<description><![CDATA[二重ループのバグ の記事を読んではじめになんだこのコードは？と思った。
変なコメントがあるし、さてはこれが悪さしてるんだろうと察しはついた。
ここでふと思った。
わざわざこんなコード書く人はいないだろう。
Java パズ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://d.hatena.ne.jp/Nagise/20110920/1316529322" name="1316529322">二重ループのバグ</a> の記事を読んではじめになんだこのコードは？と思った。</p>
<p>変なコメントがあるし、さてはこれが悪さしてるんだろうと察しはついた。</p>
<p>ここでふと思った。</p>
<p>わざわざこんなコード書く人はいないだろう。</p>
<p>Java パズラーでも記憶にないなぁ・・・</p>
<p>確かラベル関係のはあったかな？</p>
<p>と言うことで、きっと暇つぶしに作った、周りにこのような難読化コードを推奨している人たちがいるのかなぁって思ったりした。</p>
<p>このブログの管理者の過去記事を見たけどマニアックだね。（＾＾）</p>
<p>ジェネリクス関係はへたな参考書より解りやすいと思う。</p>
<p>プロフェッショナルなプログラマはこういった遊びが好きなのかｗ</p>
<p>私にはついて行けない（＞＜）</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:eb6e7a54-91dc-48c2-b47e-29d21639f611" class="wlWriterEditableSmartContent">Hatena タグ: <a href="http://b.hatena.ne.jp/t/Java" rel="tag">Java</a></div>
]]></content:encoded>
			<wfw:commentRss>http://yucchi-ja.com/wordpress/2011/09/21/%e6%84%8f%e5%9c%b0%e6%82%aa%e3%81%aa%e3%83%a6%e3%83%8b%e3%82%b3%e3%83%bc%e3%83%89%e3%82%a8%e3%82%b9%e3%82%b1%e3%83%bc%e3%83%97/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JDK7 の jarsigner に問題あり？</title>
		<link>http://yucchi-ja.com/wordpress/2011/08/17/jdk7-%e3%81%ae-jarsigner-%e3%81%ab%e5%95%8f%e9%a1%8c%e3%81%82%e3%82%8a%ef%bc%9f/</link>
		<comments>http://yucchi-ja.com/wordpress/2011/08/17/jdk7-%e3%81%ae-jarsigner-%e3%81%ab%e5%95%8f%e9%a1%8c%e3%81%82%e3%82%8a%ef%bc%9f/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 00:30:23 +0000</pubDate>
		<dc:creator>Yucchi</dc:creator>
				<category><![CDATA[Google Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JDK 7]]></category>

		<guid isPermaLink="false">http://yucchi-ja.com/wordpress/2011/08/17/jdk7-%e3%81%ae-jarsigner-%e3%81%ab%e5%95%8f%e9%a1%8c%e3%81%82%e3%82%8a%ef%bc%9f/</guid>
		<description><![CDATA[NetBeans で簡単に署名付き apk ファイルをつくる ではまった Android の apk ファイルに署名をつける件を調べた。
と言ってもちょっとググってみただけなんですが・・・
やはり JDK7 の jars [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yucchi-ja.com/wordpress/2011/08/16/netbeans-%e3%81%a7%e7%b0%a1%e5%8d%98%e3%81%ab%e7%bd%b2%e5%90%8d%e4%bb%98%e3%81%8d-apk-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%81%a4%e3%81%8f%e3%82%8b/">NetBeans で簡単に署名付き apk ファイルをつくる</a> ではまった Android の apk ファイルに署名をつける件を調べた。</p>
<p>と言ってもちょっとググってみただけなんですが・・・</p>
<p>やはり JDK7 の jarsigner が失敗するみたいですね。</p>
<p>Android な人は注意しましょう。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:73660bf5-27c9-42fb-bdd1-797bc5f85bb2" class="wlWriterEditableSmartContent">Hatena タグ: <a href="http://b.hatena.ne.jp/t/JDK+7" rel="tag">JDK 7</a>,<a href="http://b.hatena.ne.jp/t/Google+Android" rel="tag">Google Android</a></div>
]]></content:encoded>
			<wfw:commentRss>http://yucchi-ja.com/wordpress/2011/08/17/jdk7-%e3%81%ae-jarsigner-%e3%81%ab%e5%95%8f%e9%a1%8c%e3%81%82%e3%82%8a%ef%bc%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NetBeans で簡単に署名付き apk ファイルをつくる</title>
		<link>http://yucchi-ja.com/wordpress/2011/08/16/netbeans-%e3%81%a7%e7%b0%a1%e5%8d%98%e3%81%ab%e7%bd%b2%e5%90%8d%e4%bb%98%e3%81%8d-apk-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%81%a4%e3%81%8f%e3%82%8b/</link>
		<comments>http://yucchi-ja.com/wordpress/2011/08/16/netbeans-%e3%81%a7%e7%b0%a1%e5%8d%98%e3%81%ab%e7%bd%b2%e5%90%8d%e4%bb%98%e3%81%8d-apk-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%81%a4%e3%81%8f%e3%82%8b/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 03:21:56 +0000</pubDate>
		<dc:creator>Yucchi</dc:creator>
				<category><![CDATA[Google Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[JDK 7]]></category>

		<guid isPermaLink="false">http://yucchi-ja.com/wordpress/2011/08/16/netbeans-%e3%81%a7%e7%b0%a1%e5%8d%98%e3%81%ab%e7%bd%b2%e5%90%8d%e4%bb%98%e3%81%8d-apk-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%81%a4%e3%81%8f%e3%82%8b/</guid>
		<description><![CDATA[NetBeans に NBAndroid プラグインをインストールして Android アプリを作成している人は少ないと思うので
自分用φ(．．)メモメモ
プロジェクトを右クリックして [ Export Signed A [...]]]></description>
			<content:encoded><![CDATA[<p>NetBeans に NBAndroid プラグインをインストールして Android アプリを作成している人は少ないと思うので</p>
<p>自分用φ(．．)メモメモ</p>
<p>プロジェクトを右クリックして [ Export Signed Android Package ] をクリックします。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/08/11.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="1" border="0" alt="1" src="http://yucchi-ja.com/wordpress/wp-content/2011/08/1_thumb1.jpg" width="476" height="542" /></a></p>
<p>keystore ファイルを作成するためのウィンドウが表示されます。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/08/2.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="2" border="0" alt="2" src="http://yucchi-ja.com/wordpress/wp-content/2011/08/2_thumb.jpg" width="627" height="460" /></a></p>
<p>&#160;</p>
<p>keystore ファイル を初めてつくる、または新たにつくる場合は Create new keystore ラジオボタンをクリックして選択します。</p>
<p>出力先を設定します。</p>
<p>そしてパスワードを設定して [ 次へ &gt; ] ボタンをクリックします。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/08/3.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="3" border="0" alt="3" src="http://yucchi-ja.com/wordpress/wp-content/2011/08/3_thumb.jpg" width="622" height="457" /></a> </p>
<p>非公開鍵をさきほどの keystore ファイルを使って作ります。</p>
<p>すでに keystore ファイルがありそれを使う場合は Alias のドロップダウンリストより選んで非公開鍵用のパスワードを入力します。</p>
<p>Add new key ラジオボタンを選択します。</p>
<p>[ 次へ ] ボタンをクリックします。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/08/4.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="4" border="0" alt="4" src="http://yucchi-ja.com/wordpress/wp-content/2011/08/4_thumb.jpg" width="636" height="459" /></a></p>
<p>非公開鍵の署名内容をそれぞれ入力します。</p>
<p>ここでのパスワードは非公開鍵ようのパスワードになります。</p>
<p>あとはそれなりに入力するだけですが key の入力内容（key の名前)は解りやすいものにしておくと再利用の時に迷わずにすみます。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/08/5.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="5" border="0" alt="5" src="http://yucchi-ja.com/wordpress/wp-content/2011/08/5_thumb.jpg" width="646" height="458" /></a></p>
<p>署名付き apk ファイルの出力さきと署名の有効期間が表示されます。</p>
<p>[ 完了 ] ボタンをクリックしてできあがるのを待つだけです。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/08/6.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="6" border="0" alt="6" src="http://yucchi-ja.com/wordpress/wp-content/2011/08/6_thumb.jpg" width="648" height="458" /></a></p>
<p>ここで嬉しいことに、アプリケーションの最適化も NetBeans はおこなってくれます。</p>
<p>zipalign はもう必要ないですね。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/08/7.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="7" border="0" alt="7" src="http://yucchi-ja.com/wordpress/wp-content/2011/08/7_thumb.jpg" width="814" height="59" /></a></p>
<p>本当にできてるか確認しました。</p>
<p>keystore ファイル 指定の場所にありました。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/08/8.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="8" border="0" alt="8" src="http://yucchi-ja.com/wordpress/wp-content/2011/08/8_thumb.jpg" width="571" height="331" /></a></p>
<p>もちろん署名付き apk ファイルも！</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/08/9.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="9" border="0" alt="9" src="http://yucchi-ja.com/wordpress/wp-content/2011/08/9_thumb.jpg" width="804" height="413" /></a></p>
<p>さて、疑り深い私はちゃんと署名されているかも確認！</p>
<p>ちゃんと検証されました。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/08/10.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="10" border="0" alt="10" src="http://yucchi-ja.com/wordpress/wp-content/2011/08/10_thumb.jpg" width="509" height="157" /></a></p>
<p>これでハッピーエンドとなるはずだったんですが・・・</p>
<p>実は大きな問題がありました。</p>
<p>今までの作業は Windows Vista 64 bit&#160; JDK6 u26&#160; NetBeans 7.0.1 で非常に簡単に問題なくできました。</p>
<p>実は最初は Windows 7&#160; JDK7&#160; NetBeans 7.0.1 でこの作業をしていました。</p>
<p>署名付き apk ファイルをつくって、署名の確認をせずに Android マーケットにアプリを登録しました。</p>
<p>無事にアプリをアップロードすることができ、Android マーケットにも反映されていたので安心していたのですが・・・</p>
<p>なんと！ インストールできない（＞＜）</p>
<p>で、署名の確認をしたところ お・か・し・い・・・・・・・・・・！</p>
<p>時間がないので少ししか検証してないのですが</p>
<p>どうも JDK7 の jarsigner かなっ？</p>
<p>ちなみに JDK7 でつくった keystore ファイルをつかって JDK6 環境のコンピュータで署名付きアプリをつくり、</p>
<p>Android マーケットに登録したらこの問題は解決しました。</p>
<p>ちなみにその apk ファイルを JDK7 環境で署名確認すると警告がでます。( ・_・;)</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/08/111.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="11" border="0" alt="11" src="http://yucchi-ja.com/wordpress/wp-content/2011/08/11_thumb.jpg" width="680" height="245" /></a></p>
<p>たまたま Android マーケット側の問題がこのタイミングで発生して修正されたのかもしれません。</p>
<p>ただ Android マーケットで登録アプリの削除の方法が解らないので気軽に検証することができない。゜(゜´Д｀゜)゜。</p>
<p>せっかくのお盆休みなのにもやもやした気分でブルーが少しはいりました。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:677c0d4f-351b-4ef4-886d-be930201419a" class="wlWriterEditableSmartContent">Hatena タグ: <a href="http://b.hatena.ne.jp/t/NetBeans" rel="tag">NetBeans</a>,<a href="http://b.hatena.ne.jp/t/Google+Android" rel="tag">Google Android</a>,<a href="http://b.hatena.ne.jp/t/Java" rel="tag">Java</a>,<a href="http://b.hatena.ne.jp/t/JDK+7" rel="tag">JDK 7</a></div>
]]></content:encoded>
			<wfw:commentRss>http://yucchi-ja.com/wordpress/2011/08/16/netbeans-%e3%81%a7%e7%b0%a1%e5%8d%98%e3%81%ab%e7%bd%b2%e5%90%8d%e4%bb%98%e3%81%8d-apk-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%81%a4%e3%81%8f%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ForkJoin Framework</title>
		<link>http://yucchi-ja.com/wordpress/2011/07/29/forkjoin-framework/</link>
		<comments>http://yucchi-ja.com/wordpress/2011/07/29/forkjoin-framework/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 06:14:13 +0000</pubDate>
		<dc:creator>Yucchi</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NetBeans]]></category>

		<guid isPermaLink="false">http://yucchi-ja.com/wordpress/2011/07/29/forkjoin-framework/</guid>
		<description><![CDATA[JDK7 をインストールして確認したいことがあったので試してみました。
以前、「ForkJoin を NetBeans 6.8 で試してみた」でプロファイラがちゃんと動かなかったので
JDK7 と NetBeans 7. [...]]]></description>
			<content:encoded><![CDATA[<p>JDK7 をインストールして確認したいことがあったので試してみました。</p>
<p>以前、「<a href="http://yucchi-ja.com/wordpress/2009/12/21/forkjoin-%e3%82%92-netbeans-68-%e3%81%a7%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f/">ForkJoin を NetBeans 6.8 で試してみた</a>」でプロファイラがちゃんと動かなかったので</p>
<p>JDK7 と NetBeans 7.0 の組み合わせで動くのか試してみました。</p>
<p>おおっ！ ちゃんと動くじゃないか！</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/07/1.jpg" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="1" border="0" alt="1" src="http://yucchi-ja.com/wordpress/wp-content/2011/07/1_thumb.jpg" width="1193" height="433" /></a></p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2011/07/2.jpg" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="2" border="0" alt="2" src="http://yucchi-ja.com/wordpress/wp-content/2011/07/2_thumb.jpg" width="1201" height="666" /></a></p>
<p>やるな NetBeans それに JDK7</p>
<p>これでやっとすっきり眠れます（爆</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a8272942-87e4-472f-b029-e2295b777df9" class="wlWriterEditableSmartContent">Hatena タグ: <a href="http://b.hatena.ne.jp/t/Java" rel="tag">Java</a>,<a href="http://b.hatena.ne.jp/t/NetBeans" rel="tag">NetBeans</a></div>
]]></content:encoded>
			<wfw:commentRss>http://yucchi-ja.com/wordpress/2011/07/29/forkjoin-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java SE Development Kit 7</title>
		<link>http://yucchi-ja.com/wordpress/2011/07/29/java-se-development-kit-7/</link>
		<comments>http://yucchi-ja.com/wordpress/2011/07/29/java-se-development-kit-7/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 05:32:32 +0000</pubDate>
		<dc:creator>Yucchi</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://yucchi-ja.com/wordpress/2011/07/29/java-se-development-kit-7/</guid>
		<description><![CDATA[JDK6 の長い歴史から新しく JDK7 もリリースされた。
いろいろあってリーリースが遅れたし搭載される機能もごたごたしてとりあえず出しとくかって感じのリリースですね。
でも、 Java は進化する言語だから気にしない [...]]]></description>
			<content:encoded><![CDATA[<p>JDK6 の長い歴史から新しく JDK7 もリリースされた。</p>
<p>いろいろあってリーリースが遅れたし搭載される機能もごたごたしてとりあえず出しとくかって感じのリリースですね。</p>
<p>でも、 Java は進化する言語だから気にしない！</p>
<p>個人的には JSR295,JSR296 が搭載されなかった（今後の予定は無いのかな？）のは残念です。</p>
<p>JDK7 の新機能についてはこれからあちこちで紹介されるだろうし、ぼちぼちと覚えていこうと思います。</p>
<p>忙しい毎日がさらに忙しくなりそうです(&gt;_&lt;)</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:69399fda-fd9f-433e-b7eb-2f8d164e7dd6" class="wlWriterEditableSmartContent">Hatena タグ: <a href="http://b.hatena.ne.jp/t/Java" rel="tag">Java</a></div>
]]></content:encoded>
			<wfw:commentRss>http://yucchi-ja.com/wordpress/2011/07/29/java-se-development-kit-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NetBeans IDE 7.0 Beta をネタに動画を試してみる</title>
		<link>http://yucchi-ja.com/wordpress/2011/02/02/netbeans-ide-7-0-beta-%e3%82%92%e3%83%8d%e3%82%bf%e3%81%ab%e5%8b%95%e7%94%bb%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://yucchi-ja.com/wordpress/2011/02/02/netbeans-ide-7-0-beta-%e3%82%92%e3%83%8d%e3%82%bf%e3%81%ab%e5%8b%95%e7%94%bb%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 20:21:18 +0000</pubDate>
		<dc:creator>Yucchi</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[JDK 7]]></category>

		<guid isPermaLink="false">http://yucchi-ja.com/wordpress/2011/02/02/netbeans-ide-7-0-beta-%e3%82%92%e3%83%8d%e3%82%bf%e3%81%ab%e5%8b%95%e7%94%bb%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/</guid>
		<description><![CDATA[この前に紹介した Arun Gupta さんのブログ記事を試してみました。
Screencast #35: JDK 7 Project Coin Features in NetBeans IDE 7.0 Beta
今回の [...]]]></description>
			<content:encoded><![CDATA[<p>この前に紹介した Arun Gupta さんのブログ記事を試してみました。</p>
<p><a href="http://blogs.sun.com/arungupta/entry/screencast_35_jdk_7_project">Screencast #35: JDK 7 Project Coin Features in NetBeans IDE 7.0 Beta</a></p>
<p>今回の目的は、ブログに動画を貼り付けるということです（＾＾；；；</p>
<p>よって、 NetBeans を使って JDK 7 の Project Coin の機能を試すことが目的ではありません。</p>
<p>それらに興味のあるかたは上のリンクをたどって次期 NetBeans と JDK 7 の新機能をご確認くださいませ。（感動ものです！）</p>
<p>とりあえず、<a href="http://www.streaming.jp/fladance/index.html" target="_blank">ふらだんす</a>という無料の動画プレーヤーを使わせていただきました。</p>
<p>ファイルサイズが 190.36MB くらいあるので<font size="2">超おもいです。</font></p>
<p><font size="2">ブロードバンドコンテンツということで・・・ 許してください。</font></p>
<p> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="1080" height="608" id="NetBeans IDE 7.0"><param name="flashvars" value="fms_app=&amp;video_file=http://yucchi-ja.com/movie/nb7_b1.mp4&image;_file=&amp;link_url=http://yucchi-ja.com/&amp;autoplay=false&amp;mute=false&amp;vol=&amp;controllbar=true&amp;buffertime=5" /><param name="allowfullscreen" value="true" /><param name="movie" value="http://yucchi-ja.com/stream_app/fladance.swf" /><embed src="http://yucchi-ja.com/stream_app/fladance.swf" width="1080" height="608" name="NetBeans IDE 7.0" allowfullscreen="true" flashvars="fms_app=&#038;video_file=http://yucchi-ja.com/movie/nb7_b1.mp4&#038;image_file=&#038;link_url=http://yucchi-ja.com/&#038;autoplay=false&#038;mute=false&#038;vol=&#038;controllbar=true&#038;buffertime=5" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object>
<p>ついでに YouTube で全く同じものを（ごめんね～）</p>
<p><iframe class="youtube-player" title="YouTube video player" height="637" src="http://www.youtube.com/embed/llPpdyGB86Q?rel=0&amp;hd=1" frameborder="0" width="1080" allowfullscreen="allowfullscreen" type="text/html"></iframe></p>
<p>こういうことに慣れていないので、たったこれだけのために丸一日費やしてしまった(&gt;&lt;)</p>
<p><font color="#ff0000" size="3"><strong>追記 ： NetBeans IDE 7.0 Ｂｅｔａ 2 &amp; JDK 7 build 131 で ARM も正常動作を確認しました（＾＾）</strong></font></p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:734a061b-718e-42a5-bf84-78d9a7f8189b" class="wlWriterEditableSmartContent">Hatena タグ: <a href="http://b.hatena.ne.jp/t/Java" rel="tag">Java</a>,<a href="http://b.hatena.ne.jp/t/JDK+7" rel="tag">JDK 7</a>,<a href="http://b.hatena.ne.jp/t/NetBeans" rel="tag">NetBeans</a></div>
]]></content:encoded>
			<wfw:commentRss>http://yucchi-ja.com/wordpress/2011/02/02/netbeans-ide-7-0-beta-%e3%82%92%e3%83%8d%e3%82%bf%e3%81%ab%e5%8b%95%e7%94%bb%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>軽い気持ちで JOGL その５</title>
		<link>http://yucchi-ja.com/wordpress/2010/10/29/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%95/</link>
		<comments>http://yucchi-ja.com/wordpress/2010/10/29/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%95/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 09:35:55 +0000</pubDate>
		<dc:creator>Yucchi</dc:creator>
				<category><![CDATA[JOGL]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://yucchi-ja.com/wordpress/2010/10/29/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%95/</guid>
		<description><![CDATA[今回は参考にしているサイトでは
「OpenGLを使ってJavaでも3Dを楽しもう」 第5回 マウスでの操作と視点
となってますが、マウスでグリグリ動かすだけのようなのでパスしました。
で、今回は NetBeans のテン [...]]]></description>
			<content:encoded><![CDATA[<p>今回は参考にしているサイトでは</p>
<p><a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20060807/245274/?ST=develop" target="_blank">「OpenGLを使ってJavaでも3Dを楽しもう」 第5回 マウスでの操作と視点</a></p>
<p>となってますが、マウスでグリグリ動かすだけのようなのでパスしました。</p>
<p>で、今回は NetBeans のテンプレートにある色つきの三角形をいじってみたいと思います。</p>
<p>標準では色つきの三角形と四角形がプロジェクトを作ったままの状態で表示されます。</p>
<p>で、四角形には用はないので三角形に主役になってもらって真ん中に表示させます。</p>
<p>そしてウィンドウをマウスで左クリックしたら回転して、右クリックで停止。</p>
<p>U キーを押したら X 軸、Y 軸の拡大</p>
<p>D キーを押したら X 軸、Y 軸の縮小</p>
<p>ESC キーを押したらアプリケーションの終了。</p>
<p>何処かでみたような感じがするのは気にしない（＾＾；</p>
<p>ソースは下記のようになります。（未熟者なので間違いがあるかもしれません）</p>
<pre>package org.yourorghere;

import com.sun.opengl.util.Animator;
import java.awt.Frame;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLException;
import javax.media.opengl.glu.GLU;

public class SimpleJOGL2 implements GLEventListener, KeyListener, MouseListener {

    private GLCanvas canvas;
    private Animator animator;
    private float spin = 0f;
    private float spinDelta = 0.0f;
    private float scale = 1.0f;

    public SimpleJOGL2() {
        Frame frame = new Frame("Simple JOGL Application");
        canvas = new GLCanvas();
        canvas.addGLEventListener(this);
        canvas.addKeyListener((KeyListener) this);
        canvas.addMouseListener((MouseListener) this);
        frame.add(canvas);
        frame.setSize(640, 480);
        animator = new Animator(canvas);
        frame.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                new Thread(new Runnable() {

                    @Override
                    public void run() {
                        animator.stop();
                        System.exit(0);
                    }
                }).start();
            }
        });
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

        animator.start();
    }

    public static void main(String[] args) {
        new SimpleJOGL2();
    }

    @Override
    public void init(GLAutoDrawable drawable) {
        GL gl = drawable.getGL();
        System.err.println("INIT GL IS: " + gl.getClass().getName());
        gl.setSwapInterval(1);
        gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        gl.glShadeModel(GL.GL_SMOOTH);
    }

    @Override
    public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
        GL gl = drawable.getGL();
        GLU glu = new GLU();
        if (height &lt;= 0) {
            height = 1;
        }
        final float h = (float) width / (float) height;
        gl.glViewport(0, 0, width, height);
        gl.glMatrixMode(GL.GL_PROJECTION);
        gl.glLoadIdentity();
        glu.gluPerspective(45.0f, h, 1.0, 20.0);
        gl.glMatrixMode(GL.GL_MODELVIEW);
        gl.glLoadIdentity();
    }

    @Override
    public void display(GLAutoDrawable drawable) {
        GL gl = drawable.getGL();
        gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
        gl.glLoadIdentity();
        gl.glRotatef(spin, 0.0f, 0.0f, 1.0f);
        gl.glScalef(scale, scale, 1.0f);
        gl.glTranslatef(0.0f, 0.0f, -6.0f);
        gl.glBegin(GL.GL_TRIANGLES);
        gl.glColor3f(1.0f, 0.0f, 0.0f);    // Set the current drawing color to red
        gl.glVertex3f(0.0f, 1.0f, 0.0f);   // Top
        gl.glColor3f(0.0f, 1.0f, 0.0f);    // Set the current drawing color to green
        gl.glVertex3f(-1.0f, -1.0f, 0.0f); // Bottom Left
        gl.glColor3f(0.0f, 0.0f, 1.0f);    // Set the current drawing color to blue
        gl.glVertex3f(1.0f, -1.0f, 0.0f);  // Bottom Right
        gl.glEnd();
        gl.glFlush();
        spinDisplay();
    }

    @Override
    public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) {
    }

    private void spinDisplay() {
        spin = spin + spinDelta;
        if (spin &gt; 360f) {
            spin = spin - 360;
        }
    }

    @Override
    public void keyTyped(KeyEvent key) {
    }

    @Override
    @SuppressWarnings("fallthrough")
    public void keyPressed(KeyEvent key) {
        switch (key.getKeyCode()) {
            case KeyEvent.VK_U:
                scale = scale + 0.1f;
                canvas.display();
                break;
            case KeyEvent.VK_D:
                System.out.println(scale);
                scale = scale - 0.1f;
                canvas.display();
                break;
            case KeyEvent.VK_ESCAPE:
                new Thread(new Runnable() {

                    @Override
                    public void run() {
                        animator.stop();
                        System.exit(0);
                    }
                }).start();
            default:
                break;
        }
    }

    @Override
    public void keyReleased(KeyEvent key) {
    }

    @Override
    public void mouseClicked(MouseEvent key) {
    }

    @Override
    public void mousePressed(MouseEvent mouse) {
        switch (mouse.getButton()) {
            case MouseEvent.BUTTON1:
                spinDelta = 2f;
                break;
            case MouseEvent.BUTTON2:
            case MouseEvent.BUTTON3:
                spinDelta = 0f;
                break;
        }
        if (canvas == null) {
            throw new GLException
                    ("Either reference to GLJPanel or GLCanvas is not set.");
        }
        if (canvas != null) {
        }
        canvas.display();
    }

    @Override
    public void mouseReleased(MouseEvent mouse) {
    }

    @Override
    public void mouseEntered(MouseEvent mouse) {
    }

    @Override
    public void mouseExited(MouseEvent mouse) {
    }
}
</pre>
<pre>ポリゴンと色を使ってるのが新鮮ですね。</pre>
<pre>あとはこれまでにあった拡大・縮小と回転を利用しているだけですね。</pre>
<pre>プログラムの実行結果は下図のようになります。</pre>
<pre><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/17.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="1" border="0" alt="1" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/1_thumb4.jpg" width="244" height="184"></a> </pre>
<pre><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/24.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="2" border="0" alt="2" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/2_thumb4.jpg" width="244" height="185"></a> </pre>
<pre><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/32.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="3" border="0" alt="3" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/3_thumb2.jpg" width="244" height="185"></a> </pre>
<pre>ただこのプログラムは問題があります。</pre>
<pre>縮小し続けると拡大に転じてしまいます。コードにヒント（答えとなる実行結果）が隠してあります。</pre>
<pre>このような問題を解決するのは簡単ですけどこのままのコードでこんなふうになるってのが解って面白いですね。（＾＾）</pre>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b2f0afb8-faac-4842-8187-a6d6951f56fd" class="wlWriterEditableSmartContent">Hatena タグ: <a href="http://b.hatena.ne.jp/t/Java" rel="tag">Java</a>,<a href="http://b.hatena.ne.jp/t/JOGL" rel="tag">JOGL</a></div>
<p>
<pre>&nbsp;</pre>
]]></content:encoded>
			<wfw:commentRss>http://yucchi-ja.com/wordpress/2010/10/29/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>軽い気持ちで JOGL その４</title>
		<link>http://yucchi-ja.com/wordpress/2010/10/24/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%94/</link>
		<comments>http://yucchi-ja.com/wordpress/2010/10/24/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%94/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 00:16:19 +0000</pubDate>
		<dc:creator>Yucchi</dc:creator>
				<category><![CDATA[JOGL]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://yucchi-ja.com/wordpress/2010/10/24/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%94/</guid>
		<description><![CDATA[今回は拡大・縮小を試してみます。
display メソッドに拡大・縮小用の glScalef メソッドを追加します。
回転させてから拡大・縮小をおこなってるようにプログラムのコードはなってますが OpenGL での処理は [...]]]></description>
			<content:encoded><![CDATA[<p>今回は拡大・縮小を試してみます。</p>
<p>display メソッドに拡大・縮小用の glScalef メソッドを追加します。</p>
<p>回転させてから拡大・縮小をおこなってるようにプログラムのコードはなってますが OpenGL での処理は逆順になるので実際には拡大・縮小 → 回転と処理されるようです。</p>
<p>glScalef メソッドの引数は倍率となってます。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/16.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="1" border="0" alt="1" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/1_thumb3.jpg" width="623" height="386" /></a> </p>
<p>&#160;</p>
<p>実行させてみると下図のように拡大・縮小され表示されます。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/23.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2" border="0" alt="2" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/2_thumb3.jpg" width="651" height="489" /></a> </p>
<p>なかなか面白いことが簡単にできてしまいますね（＾＾）</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7073ffb2-07b8-4c90-ae68-cd635c8b061a" class="wlWriterEditableSmartContent">Hatena タグ: <a href="http://b.hatena.ne.jp/t/Java" rel="tag">Java</a>,<a href="http://b.hatena.ne.jp/t/JOGL" rel="tag">JOGL</a></div>
]]></content:encoded>
			<wfw:commentRss>http://yucchi-ja.com/wordpress/2010/10/24/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%94/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>軽い気持ちで JOGL その３</title>
		<link>http://yucchi-ja.com/wordpress/2010/10/23/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%93/</link>
		<comments>http://yucchi-ja.com/wordpress/2010/10/23/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%93/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 04:35:51 +0000</pubDate>
		<dc:creator>Yucchi</dc:creator>
				<category><![CDATA[JOGL]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://yucchi-ja.com/wordpress/2010/10/23/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%93/</guid>
		<description><![CDATA[今回は移動を試してみます。
今まで同様に
「OpenGLを使ってJavaでも3Dを楽しもう」 第4回 回転，移動，拡大・縮小
を参考にさせていただきます。
非常に解りやすく説明されているので感謝感激です。
前回は回転を試 [...]]]></description>
			<content:encoded><![CDATA[<p>今回は移動を試してみます。</p>
<p>今まで同様に</p>
<p><a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20060724/244094/?ST=develop" target="_blank">「OpenGLを使ってJavaでも3Dを楽しもう」 第4回 回転，移動，拡大・縮小</a></p>
<p>を参考にさせていただきます。</p>
<p>非常に解りやすく説明されているので感謝感激です。</p>
<p>前回は回転を試してみて下図のように表示させることに成功しました。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/15.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="1" border="0" alt="1" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/1_thumb2.jpg" width="647" height="489" /></a> </p>
<p>&#160;</p>
<p>今回は移動です。</p>
<p>display メソッドの内容を下記のように glTranslatef メソッドを追加させます。 </p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/22.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2" border="0" alt="2" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/2_thumb2.jpg" width="619" height="385" /></a> </p>
<p>&#160;</p>
<p>それで実行させると下図のようにねらいどおりに左に移動しました。 </p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/31.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3" border="0" alt="3" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/3_thumb1.jpg" width="649" height="489" /></a> </p>
<p>&#160;</p>
<p>glTranslatef メソッドの引数を変えて Y 軸方向の移動も追加してみます。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/42.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="4" border="0" alt="4" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/4_thumb2.jpg" width="627" height="29" /></a> </p>
<p>&#160;</p>
<p>これも実行させると先ほどの X 軸方向だけの移動に Y 軸方向の移動も追加され実行されました。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/51.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="5" border="0" alt="5" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/5_thumb1.jpg" width="646" height="487" /></a> </p>
<p>&#160;</p>
<p>さらに Z 軸方向の移動もくわえてみます。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/61.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="6" border="0" alt="6" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/6_thumb1.jpg" width="772" height="31" /></a> </p>
<p>&#160;</p>
<p>これも無事に実行されました。 </p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/71.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="7" border="0" alt="7" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/7_thumb1.jpg" width="647" height="487" /></a> </p>
<p>&#160;</p>
<p>ここで、回転を先に処理させてから移動を処理させるように下記のようにコードを変更してみます。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/81.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="8" border="0" alt="8" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/8_thumb1.jpg" width="783" height="385" /></a> </p>
<p>&#160;</p>
<p>あれれ？</p>
<p>なにも表示されてないですね（＞＜）</p>
<p>どうやら視界の外にまで移動したようです。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/91.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="9" border="0" alt="9" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/9_thumb1.jpg" width="648" height="488" /></a> </p>
<p>&#160;</p>
<p>そこで glTranslatef メソッドの引数を 1.0f&#160; → 3.0f → 5.0f と X 軸方向だけの移動として実行してみました。</p>
<p>下図の３枚がそれぞれの実行結果です。 </p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/101.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="10" border="0" alt="10" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/10_thumb1.jpg" width="651" height="487" /></a> </p>
<p>&#160;</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/111.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="11" border="0" alt="11" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/11_thumb1.jpg" width="647" height="487" /></a> </p>
<p>&#160;</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/121.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="12" border="0" alt="12" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/12_thumb1.jpg" width="647" height="489" /></a></p>
<p>&#160;</p>
<p><strike>右斜め上方向に移動してますね。</strike></p>
<p><strike>どうやら回転で行列が変更されてしまうからですね。</strike></p>
<p><strike>つまり、X 軸と Y 軸との回転処理の順序によっても影響を受けるってことですね。</strike></p>
<p>う～ん・・・ ややこしいですね。</p>
<p>まぁ、軽い気持ちでってことだからあまり深く考え込まないようにしよう（爆</p>
<p>&#160;</p>
<p><font color="#ff0000">追記</font></p>
<p><font color="#ff0000">参考にしているサイトにも記載されてますが OpenGL の場合、先に書いてあるメソッドよりも後に書いてあるメソッドが先に処理されるようです。</font></p>
<p><font color="#ff0000">つまり、逆順にです。</font></p>
<p><font color="#ff0000">回転 → 拡大・縮小だと処理は、拡大・縮小 → 回転</font></p>
<p><font color="#ff0000">ここからは軽く調べてみた内容なのであまり信用しないでください。</font></p>
<p><font color="#ff0000">詳しくは解りませんが OpenGL の行列計算は個々の変換行列の積として構成されるかららしい。</font></p>
<p><font color="#ff0000">ここで行列計算の最初は恒等行列となるから逆順で積ととっていくようです。</font></p>
<p><font color="#ff0000">この追記の内容も良く理解できてないので間違ってるかもしれませんが 軽い気持ちでってことで（ヲヒ</font></p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4290aa2e-6e29-458b-b69d-89f805978249" class="wlWriterEditableSmartContent">Hatena タグ: <a href="http://b.hatena.ne.jp/t/Java" rel="tag">Java</a>,<a href="http://b.hatena.ne.jp/t/JOGL" rel="tag">JOGL</a></div>
]]></content:encoded>
			<wfw:commentRss>http://yucchi-ja.com/wordpress/2010/10/23/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>軽い気持ちで JOGL その２</title>
		<link>http://yucchi-ja.com/wordpress/2010/10/17/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%92/</link>
		<comments>http://yucchi-ja.com/wordpress/2010/10/17/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%92/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 11:39:35 +0000</pubDate>
		<dc:creator>Yucchi</dc:creator>
				<category><![CDATA[JOGL]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[NetBeans]]></category>

		<guid isPermaLink="false">http://yucchi-ja.com/wordpress/2010/10/17/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%92/</guid>
		<description><![CDATA[NetBeans を使ってお手軽に JOGL を試す環境ができたので下記のサイトを参考にして軽くいじってみました。
「OpenGLを使ってJavaでも3Dを楽しもう」 第4回 回転，移動，拡大・縮小
新規プロジェクトを作 [...]]]></description>
			<content:encoded><![CDATA[<p>NetBeans を使ってお手軽に JOGL を試す環境ができたので下記のサイトを参考にして軽くいじってみました。</p>
<p><a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20060724/244094/?ST=develop" target="_blank">「OpenGLを使ってJavaでも3Dを楽しもう」 第4回 回転，移動，拡大・縮小</a></p>
<p>新規プロジェクトを作成します。</p>
<p>選択肢は三つありますけど一番シンプルな JOGL Application にしました。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/14.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="1" border="0" alt="1" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/1_thumb1.jpg" width="644" height="443" /></a> </p>
<p>&#160;</p>
<p>プロジェクトを初期のまま構築し実行すると下図のように描画されます。</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/21.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2" border="0" alt="2" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/2_thumb1.jpg" width="641" height="484" /></a> </p>
<p>&#160;</p>
<p>ソースを確認すると下記のようになっていました。</p>
<pre>package org.yourorghere;

import com.sun.opengl.util.Animator;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.glu.GLU;

/**
 * SimpleJOGL.java 
 * author: Brian Paul (converted to Java by Ron Cemer and Sven Goethel)


 *
 * This version is equal to Brian Paul's version 1.2 1999/10/21
 */
public class SimpleJOGL implements GLEventListener {

    public static void main(String[] args) {
        Frame frame = new Frame(&quot;Simple JOGL Application&quot;);
        GLCanvas canvas = new GLCanvas();

        canvas.addGLEventListener(new SimpleJOGL());
        frame.add(canvas);
        frame.setSize(640, 480);
        final Animator animator = new Animator(canvas);
        frame.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                // Run this on another thread than the AWT event queue to
                // make sure the call to Animator.stop() completes before
                // exiting
                new Thread(new Runnable() {

                    public void run() {
                        animator.stop();
                        System.exit(0);
                    }
                }).start();
            }
        });
        // Center frame
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        animator.start();
    }

    public void init(GLAutoDrawable drawable) {
        // Use debug pipeline
        // drawable.setGL(new DebugGL(drawable.getGL()));

        GL gl = drawable.getGL();
        System.err.println(&quot;INIT GL IS: &quot; + gl.getClass().getName());

        // Enable VSync
        gl.setSwapInterval(1);

        // Setup the drawing area and shading mode
        gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        gl.glShadeModel(GL.GL_SMOOTH); // try setting this to GL_FLAT and see what happens.
    }

    public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
        GL gl = drawable.getGL();
        GLU glu = new GLU();

        if (height &lt;= 0) { // avoid a divide by zero error!

            height = 1;
        }
        final float h = (float) width / (float) height;
        gl.glViewport(0, 0, width, height);
        gl.glMatrixMode(GL.GL_PROJECTION);
        gl.glLoadIdentity();
        glu.gluPerspective(45.0f, h, 1.0, 20.0);
        gl.glMatrixMode(GL.GL_MODELVIEW);
        gl.glLoadIdentity();
    }

    public void display(GLAutoDrawable drawable) {
        GL gl = drawable.getGL();

        // Clear the drawing area
        gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
        // Reset the current matrix to the &quot;identity&quot;
        gl.glLoadIdentity();

        // Move the &quot;drawing cursor&quot; around
        gl.glTranslatef(-1.5f, 0.0f, -6.0f);

        // Drawing Using Triangles
        gl.glBegin(GL.GL_TRIANGLES);
            gl.glColor3f(1.0f, 0.0f, 0.0f);    // Set the current drawing color to red
            gl.glVertex3f(0.0f, 1.0f, 0.0f);   // Top
            gl.glColor3f(0.0f, 1.0f, 0.0f);    // Set the current drawing color to green
            gl.glVertex3f(-1.0f, -1.0f, 0.0f); // Bottom Left
            gl.glColor3f(0.0f, 0.0f, 1.0f);    // Set the current drawing color to blue
            gl.glVertex3f(1.0f, -1.0f, 0.0f);  // Bottom Right
        // Finished Drawing The Triangle
        gl.glEnd();

        // Move the &quot;drawing cursor&quot; to another position
        gl.glTranslatef(3.0f, 0.0f, 0.0f);
        // Draw A Quad
        gl.glBegin(GL.GL_QUADS);
            gl.glColor3f(0.5f, 0.5f, 1.0f);    // Set the current drawing color to light blue
            gl.glVertex3f(-1.0f, 1.0f, 0.0f);  // Top Left
            gl.glVertex3f(1.0f, 1.0f, 0.0f);   // Top Right
            gl.glVertex3f(1.0f, -1.0f, 0.0f);  // Bottom Right
            gl.glVertex3f(-1.0f, -1.0f, 0.0f); // Bottom Left
        // Done Drawing The Quad
        gl.glEnd();

        // Flush all drawing operations to the graphics card
        gl.glFlush();
    }

    public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) {
    }
}
</pre>
<p>そこで display メソッドと reshape メソッドを変更し参考サイトと同じよう立方体を表示させました。</p>
<pre>package org.yourorghere;

import com.sun.opengl.util.Animator;
import com.sun.opengl.util.GLUT;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.glu.GLU;

/**
 * SimpleJOGL.java 
 * author: Brian Paul (converted to Java by Ron Cemer and Sven Goethel)


 *
 * This version is equal to Brian Paul's version 1.2 1999/10/21
 */
public class SimpleJOGL implements GLEventListener {

    private float angleX = 30.0f;
    private float angleY = 60.0f;

    public static void main(String[] args) {
        Frame frame = new Frame(&quot;Simple JOGL Application&quot;);
        GLCanvas canvas = new GLCanvas();

        canvas.addGLEventListener(new SimpleJOGL());
        frame.add(canvas);
        frame.setSize(640, 480);
        final Animator animator = new Animator(canvas);
        frame.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                // Run this on another thread than the AWT event queue to
                // make sure the call to Animator.stop() completes before
                // exiting
                new Thread(new Runnable() {

                    public void run() {
                        animator.stop();
                        System.exit(0);
                    }
                }).start();
            }
        });
        // Center frame
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        animator.start();
    }

    public void init(GLAutoDrawable drawable) {
        // Use debug pipeline
        // drawable.setGL(new DebugGL(drawable.getGL()));

        GL gl = drawable.getGL();
        System.err.println(&quot;INIT GL IS: &quot; + gl.getClass().getName());

        // Enable VSync
        gl.setSwapInterval(1);

        // Setup the drawing area and shading mode
        gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        gl.glShadeModel(GL.GL_SMOOTH); // try setting this to GL_FLAT and see what happens.
    }

    public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) { // ウィンドウサイズ変更時
        GL gl = drawable.getGL();
        GLU glu = new GLU();

        if (height &lt;= 0) { // avoid a divide by zero error!

            height = 1;
        }
        final float h = (float) width / (float) height;
        gl.glViewport(0, 0, width, height); // ウィンドウ内描画領域の指定
        gl.glMatrixMode(GL.GL_PROJECTION); // 投影変換行列
        gl.glLoadIdentity(); // 恒等行列設定
        glu.gluPerspective(20.0f, h, 5.0f, 40.0f); // 透視投影変換行列作成
        gl.glMatrixMode(GL.GL_MODELVIEW); // モデル変換行列
        gl.glLoadIdentity(); // 恒等行列設定
        gl.glTranslatef(0.0f, 0.0f, -20.0f); // 平行移動

    }

    public void display(GLAutoDrawable drawable) { // 描画要求時
        GL gl = drawable.getGL();
        GLUT glut = new GLUT();
        // Clear the drawing area
        gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); // 画面消去

        gl.glPushMatrix(); // 行列を保存

        gl.glRotatef(angleX, 1.0f, 0.0f, 0.0f); // x 軸を中心に回転

        gl.glRotatef(angleY, 0.0f, 1.0f, 0.0f); // y 軸を中心に回転

        glut.glutWireCube(2.0f); // 立方体の描画

        gl.glPopMatrix(); // 行列を元に戻す

        // Flush all drawing operations to the graphics card
        gl.glFlush();
    }

    public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) {
    }
}
</pre>
<p>参考にさせていただいたサイトのコードとは若干違いがありますが気にしないでください（＾＾；</p>
<p>reshape メソッドの中で使われている透視投影変換行列作成のための gluPerspective メソッドを使ったためです。</p>
<p>こちらのほうが直感的に解りやすいかなってことです。</p>
<p>プログラムの実行結果は・・・</p>
<p><a href="http://yucchi-ja.com/wordpress/wp-content/2010/10/41.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="4" border="0" alt="4" src="http://yucchi-ja.com/wordpress/wp-content/2010/10/4_thumb1.jpg" width="649" height="488" /></a> </p>
<p>&#160;</p>
<p>もちろん、問題なく描画されました（＾＾）</p>
<p>なかなか面白いですね。</p>
<p>引き続き参考サイトの記事を読んでいじってみようかと思ってます。（時間があれば・・・ 私の一日の時間が２４時間から２８時間くらいになればいいのに 神様おねがいします！</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:10970247-9efd-4f02-9e9d-ff5b220538be" class="wlWriterEditableSmartContent">Hatena タグ: <a href="http://b.hatena.ne.jp/t/Java" rel="tag">Java</a>,<a href="http://b.hatena.ne.jp/t/NetBeans" rel="tag">NetBeans</a>,<a href="http://b.hatena.ne.jp/t/JOGL" rel="tag">JOGL</a></div>
]]></content:encoded>
			<wfw:commentRss>http://yucchi-ja.com/wordpress/2010/10/17/%e8%bb%bd%e3%81%84%e6%b0%97%e6%8c%81%e3%81%a1%e3%81%a7-jogl-%e3%81%9d%e3%81%ae%ef%bc%92/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

