<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>NetBeans</title><link>http://blogs.wankuma.com/kazuki/category/1423.aspx</link><description>NetBeans</description><managingEditor>kazuki@wankuma.com (かずき)</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>kazuki@wankuma.com (かずき)</dc:creator><title>[Java][NetBeans]JavaFX試してみた</title><link>http://blogs.wankuma.com/kazuki/archive/2008/08/09/152406.aspx</link><pubDate>Sat, 09 Aug 2008 00:00:00 GMT</pubDate><guid>http://blogs.wankuma.com/kazuki/archive/2008/08/09/152406.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/152406.aspx</wfw:comment><comments>http://blogs.wankuma.com/kazuki/archive/2008/08/09/152406.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/152406.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/152406.aspx</trackback:ping><description>&lt;p&gt;JavaFX Preview SDKが出てるみたいなので、ちょびっと触ってみようと思う。&lt;br&gt;おもむろにNetBeans6.1を立ち上げてプラグインの更新をいじくってみた。そしたら、あった！！！&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/JavaNetBeansJavaFX_15146/image.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="72" alt="image" src="http://kazuki.wankuma.com/images/2008/JavaNetBeansJavaFX_15146/image_thumb.png" width="395" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;早速インストール。&lt;/p&gt; &lt;p&gt;プロジェクトを新規作成とかしてみたが、いまいち文法がわからず。&lt;br&gt;なんだか、CSSを拡張したみたいな書き方のような印象を受けるJavaFX。&lt;/p&gt; &lt;p&gt;AIRやWPF/Silverlightに比べると後発になるんだけど、強みはなんなんだろうか。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/152406.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>kazuki@wankuma.com (かずき)</dc:creator><title>[NetBeans][Java]GlassFish V3 TP2って早いらしいけど</title><link>http://blogs.wankuma.com/kazuki/archive/2008/07/09/148060.aspx</link><pubDate>Wed, 09 Jul 2008 00:29:00 GMT</pubDate><guid>http://blogs.wankuma.com/kazuki/archive/2008/07/09/148060.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/148060.aspx</wfw:comment><comments>http://blogs.wankuma.com/kazuki/archive/2008/07/09/148060.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/148060.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/148060.aspx</trackback:ping><description>&lt;p&gt;NetBeansのGlassFish V3 TP2のプラグインを入れてみた。&lt;br&gt;早速、サービスウィンドウからGlassFish V3 TP2を、何も配備してない状態で起動してみた。GlassFishのログに出てきたメッセージによると１秒かかってないらしい。確かに早い。&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;情報: Glassfish v3 started in 981 ms &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;何も配備してない状態だと、はやいのも仕方ないかなと思ったのでVisual Web JSFのプロジェクトを作って１つ配備してみた。&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;情報: Deployment of gf3vwp done is 5997 ms&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;大体６秒程度みたいだ。&lt;br&gt;この状態で停止して、また起動してみた。 &lt;blockquote&gt; &lt;p&gt;情報: Glassfish v3 started in 7265 ms&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;ふむ。まぁ大体こんなもんか。&lt;br&gt;確かに早い気がする。GlassFish V2は、何も配備してない状態で起動しただけで、GlassFish V3 TP2でアプリ配備してある状態で起動するものより遅く感じる。&lt;br&gt;気のせい？&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/148060.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>kazuki@wankuma.com (かずき)</dc:creator><title>[NetBeans][Java]Visual Web JavaServerFacesに思うところ</title><link>http://blogs.wankuma.com/kazuki/archive/2008/06/26/145796.aspx</link><pubDate>Thu, 26 Jun 2008 23:13:00 GMT</pubDate><guid>http://blogs.wankuma.com/kazuki/archive/2008/06/26/145796.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/145796.aspx</wfw:comment><comments>http://blogs.wankuma.com/kazuki/archive/2008/06/26/145796.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/145796.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/145796.aspx</trackback:ping><description>&lt;h1&gt;名前って大事&lt;/h1&gt; &lt;p&gt;強く思うことがある。&lt;br&gt;普通にプロジェクトを作ってできる雛形にある、ApplicationBean1やSessionBean1やRequestBean1の1っていらないよね？&lt;/p&gt; &lt;p&gt;個人的に使うときには、これらを全部消してから使ってる。&lt;br&gt;まだ、1がついてなければ、そのまま使ったかもしれないけど…。&lt;/p&gt; &lt;h1&gt;POJO・・・？&lt;/h1&gt; &lt;p&gt;Web画面に対応するJavaのクラスだから、ある程度Webに依存するのがあるのは仕方ないかな～…って思うけど、extends AbstractPageBeanとしてるのはいただけない。&lt;br&gt;initとかdestroyとかprerenderとかpreprocessとかが定義されてるのとかは別にいいけど、getFacesContext()とかで、思いっきりJSF無しに私生きていけないわっていうくらい依存してるのは好きじゃない。&lt;/p&gt; &lt;h1&gt;faces-config.xmlでDIできるよね？&lt;/h1&gt; &lt;p&gt;faces-config.xmlでmanaged-beanタグを使ってクラスをリクエストスコープやセッションスコープで登録できる。&lt;br&gt;AOPなどの、高性能DIコンテナみたいな機能はないけど、プロパティインジェクションができる。&lt;/p&gt; &lt;p&gt;なのに、何故か新規作成したページには、下のようなコードが組み込まれる。&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:6a82d019-0ece-4396-b77e-72035efe748b" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;    /**
     * &amp;lt;p&amp;gt;Return a reference to the scoped data bean.&amp;lt;/p&amp;gt;
     *
     * @return reference to the scoped data bean
     */
    protected SessionBean1 getSessionBean1() {
        return (SessionBean1) getBean("SessionBean1");
    }

    /**
     * &amp;lt;p&amp;gt;Return a reference to the scoped data bean.&amp;lt;/p&amp;gt;
     *
     * @return reference to the scoped data bean
     */
    protected RequestBean1 getRequestBean1() {
        return (RequestBean1) getBean("RequestBean1");
    }&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;個人的には&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c950f90b-9ac4-4b75-91b2-1e5b9fdcf33f" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;private SessionBean1 sessionBean1;
public SessionBean1 getSessionBean1() {
  return sessionBean1;
}
public void setSessionBean1(SessionBean1 sessionBean1) {
  this.sessionBean1 = sessionBean1;
}
&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;みたいなプロパティだけ定義して、faces-config.xmlのほうでSessionBean1のインスタンスを設定するようにして欲しかった。&lt;/p&gt;
&lt;p&gt;というか簡単に、このManagedBeanのこのプロパティには、このManagedBeanのインスタンスを入れるよってGUIの上から定義できるようにしてくれたらハッピーだったのになぁ。&lt;/p&gt;
&lt;h1&gt;なんだかんだ言って&lt;/h1&gt;
&lt;p&gt;Visual Studioライクに開発できるので素敵だと思ってたりする今日この頃でした。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/145796.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>kazuki@wankuma.com (かずき)</dc:creator><title>[NetBeans]Swing Application Framework その5「JTableも使ってみよう」</title><link>http://blogs.wankuma.com/kazuki/archive/2008/06/23/145194.aspx</link><pubDate>Mon, 23 Jun 2008 23:32:00 GMT</pubDate><guid>http://blogs.wankuma.com/kazuki/archive/2008/06/23/145194.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/145194.aspx</wfw:comment><comments>http://blogs.wankuma.com/kazuki/archive/2008/06/23/145194.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/145194.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/145194.aspx</trackback:ping><description>&lt;p&gt;別にSwing Application Frameworkに限った話じゃないと思うけど、JTableを使ってみようと思う。昔は、TableModelをがりがりと実装して使った記憶がある。最近もそうなんだろうか？と思ってみてみると、NetBeansを使う限りだと、めっちゃ簡単にとりあえず使えるようになってるくさい。&lt;/p&gt; &lt;p&gt;ということで早速実験。プロジェクトを新規作成して、JTableEduという名前をつける。もちろんJavaデスクトップアプリケーションで作る。アプリケーションクラスはcom.wankuma.kazuki.jtable.JTableEduAppという名前にしておいた。&lt;br&gt;後は、ビーンバインディングも使うのでライブラリに追加しておく。&lt;/p&gt; &lt;p&gt;画面を作る前に、画面に表示するためのデータの入れ物！JavaBeansを１つ作っておこうと思う。&lt;br&gt;クラス名はPersonにして、下のようにいくつかプロパティを定義しておく。後で、コーディングしやすいようにコンストラクタもいくつか定義しておく。&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:30461f2a-6d66-434c-9848-8e0251c5191d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c"&gt;package com.wankuma.kazuki.jtable;

import java.util.Date;

public class Person {
    private int id;
    private String name;
    private Date birthday;
    private int salary;

    public Person() {
    }

    public Person(int id, String name, Date birthday, int salary) {
        this.id = id;
        this.name = name;
        this.birthday = birthday;
        this.salary = salary;
    }
    
    // Getter/Setterは省略
}
&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;そして、JTableEduViewにList&amp;lt;Person&amp;gt;型のプロパティを追加する。プロパティにはArrayListやLinkedListではなくて、バインド専門のリストのインスタンスを指定する。&lt;br&gt;ただし、素直にnewして作るんじゃなくてObservableCollections.observableList(List&amp;lt;E&amp;gt; list)というメソッドを使ってインスタンスを作る。とりあえず、空のリストでいいのでnew ArrayList()を入れておいた。&lt;br&gt;多分、素直にnewして作るんじゃなくて、こんなファクトリメソッドになってるのは、DBからとってきたリストを渡す前提なんだと思われる。&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d95b5a6b-3909-4037-b197-928bc03e2d1e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;    private List&amp;lt;Person&amp;gt; people = ObservableCollections.observableList(new ArrayList&amp;lt;Person&amp;gt;());
    public List&amp;lt;Person&amp;gt; getPeople() {
        return people;
    }

    public void setPeople(List&amp;lt;Person&amp;gt; people) {
        this.people = people;
    }
&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;次は、デザイナ上からJTableを置いて、さっき作ったpeopleプロパティとバインドする。&lt;br&gt;バインドは、デザイナのJTableの右クリックメニューから「表の定義」を選択すると開くカスタマイザダイアログからやる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansSwingApplicationFramework5JTable_14B07/image.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="101" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansSwingApplicationFramework5JTable_14B07/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;カスタマイザダイアログの表のモデルタブから、バウンドを選んでFormのpeopleを選択する。ちょうど上の画像のような感じになる。&lt;br&gt;ついでに、Fileメニューの下にMenuを１つ追加してアクションを追加する。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansSwingApplicationFramework5JTable_14B07/image_3.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="106" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansSwingApplicationFramework5JTable_14B07/image_thumb_3.png" width="171" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;アクションの名前は、addPersonにした。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansSwingApplicationFramework5JTable_14B07/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="215" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansSwingApplicationFramework5JTable_14B07/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;addPersonメソッドは、単純にpeopleに対してPersonを１つ追加するだけのシンプルなものです。&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:507cc731-a666-4dd6-bf51-a2f43794ee22" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;    @Action
    public void addPerson() {
        people.add(new Person(jTable1.getRowCount(), "田中　変太郎", new Date(), 1000000));
    }
&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;次に、カスタマイザダイアログの列タブで、挿入ボタンを押し捲ってPersonクラスのプロパティの数だけ列を追加する。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansSwingApplicationFramework5JTable_14B07/image_5.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="90" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansSwingApplicationFramework5JTable_14B07/image_thumb_5.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;これで実行すると、メニューのAdd Personを押すたびに表にデータが追加されていくプログラムが出来上がる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansSwingApplicationFramework5JTable_14B07/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="133" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansSwingApplicationFramework5JTable_14B07/image_thumb_6.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;これを、DBからとってくるようにすれば、お手軽DB編集プログラムが出来そうだ。というかJavaデスクトップアプリケーションのDBアプリの雛形がまさにそうだったりする。&lt;br&gt;このコードを見てるだけでも勉強になる。暇なときに眺めてみよう。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/145194.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>kazuki@wankuma.com (かずき)</dc:creator><title>[Java][Swing][NetBeans]Swing Application Framework その４「Resourceをもっと活用」</title><link>http://blogs.wankuma.com/kazuki/archive/2008/06/22/144979.aspx</link><pubDate>Sun, 22 Jun 2008 23:47:00 GMT</pubDate><guid>http://blogs.wankuma.com/kazuki/archive/2008/06/22/144979.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/144979.aspx</wfw:comment><comments>http://blogs.wankuma.com/kazuki/archive/2008/06/22/144979.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/144979.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/144979.aspx</trackback:ping><description>&lt;p&gt;さて、前回は、デザイナ上で指定した文字列とかが自動的にプロパティファイルに格納されるのを見た。&lt;br&gt;そのほかにも、便利？な機能がSwing Application Frameworkにあるので簡単に見てみようと思う。&lt;/p&gt; &lt;p&gt;とりあえず、前回のResourceStudyというプロジェクトのresourcestudyパッケージにPersonクラスを新規作成する。Personクラスには、nameプロパティとageプロパティを追加する。そして、フィールドに@Resourceアノテーションを追加する。これをつけておくことで、プロパティファイルから値を設定することができるようになる。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:7ef81be3-abeb-48ef-827b-6966d0bc3a61" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;package resourcestudy;

import org.jdesktop.application.Resource;

public class Person {
    @Resource
    private String name;
    @Resource
    private int age;

    // Getter/Setterは省略
}
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;そして、ResourceStudyViewのプロパティとしてPersonクラスを追加する。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:088f6939-4140-4053-b4cb-af98d6b23388" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;    private Person person;

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;まだ、インスタンスを作る処理を書いてないけど、この年齢と名前を表示するように画面をデザインしておく。「名前：」「年齢：」と項目を表示するラベル2個と、実際に名前と年齢を表示するラベル2個の合計4個を置く。名前と年齢を表示するラベルは、バインドでFormのpersonプロパティのnameとageをバインドする。
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;ラベルを右クリックして、バインド → textを選択する。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/JavaSwingNetBeansSwingApplicationFramewo_14C77/image.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="144" alt="image" src="http://kazuki.wankuma.com/images/2008/04/JavaSwingNetBeansSwingApplicationFramewo_14C77/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;出てきたウィンドウで、Formを選択してpersonのname（年齢のほうはageにする）を選択する。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/JavaSwingNetBeansSwingApplicationFramewo_14C77/image_3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="77" alt="image" src="http://kazuki.wankuma.com/images/2008/04/JavaSwingNetBeansSwingApplicationFramewo_14C77/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Swing Application Frameworkは、クラスのプロパティをプロパティファイルから読み込む機能がデフォでついてる。&lt;br&gt;具体的には、ApplicationContextクラスのgetResourceMapメソッドの引数にクラスを指定して呼び出すと、そのクラスの所属するパッケージ＋resource + クラス名.propertiesから自動的にResourceMapを作ってくれる。&lt;br&gt;ApplicationContextクラスはApplication.getApplication().getContext()で取得できる。FrameViewを継承しているクラスでは、ApplicationクラスはgetApplication()で取得できるので、下のようなコードでResourceMapが取得できることになる。&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:1a9dbaa1-a76d-4c13-9446-dcff779e183a" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;        ResourceMap personResourceMap = getApplication().getContext().getResourceMap(Person.class);
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;そして、ResourceMapのinjectFieldsメソッドを呼ぶと、プロパティファイルの値を引数で渡したオブジェクトのフィールドに代入してくれる。もちろん最初につけたResourceアノテーションのあるものに限ってだけど。ということで、コードは以下のようになる。&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:3c6c1757-5aad-4ced-bdcf-12b6eb7971a0" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;    public ResourceStudyView(SingleFrameApplication app) {
        super(app);

        ResourceMap personResourceMap = getApplication().getContext().getResourceMap(Person.class);
        person = new Person();
        personResourceMap.injectFields(person);

        initComponents();
        
        // 以下略
    }&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;肝心のプロパティファイルの中身だけど、クラス名.フィールド名 = 値といった感じで設定していく値を列挙する。&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:3019379e-fce2-4a4c-94d4-33dde4f13899" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="ruby"&gt;Person.name = 田中　一郎
Person.age = 18
&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;これで準備完了。実行してみると、personオブジェクトにデータが設定されて、その値がラベルに表示される。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/JavaSwingNetBeansSwingApplicationFramewo_14C77/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="136" alt="image" src="http://kazuki.wankuma.com/images/2008/04/JavaSwingNetBeansSwingApplicationFramewo_14C77/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;いい感じだ。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/144979.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>kazuki@wankuma.com (かずき)</dc:creator><title>[Java][Swing][NetBeans]Swing Application Framework その３「Resourceを気軽に使える」</title><link>http://blogs.wankuma.com/kazuki/archive/2008/06/22/144954.aspx</link><pubDate>Sun, 22 Jun 2008 23:39:00 GMT</pubDate><guid>http://blogs.wankuma.com/kazuki/archive/2008/06/22/144954.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/144954.aspx</wfw:comment><comments>http://blogs.wankuma.com/kazuki/archive/2008/06/22/144954.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/144954.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/144954.aspx</trackback:ping><description>&lt;p&gt;普段Javaのコードを書いてて思う。&lt;br&gt;マジックナンバーより定数。文字列なら定数よりもプロパティファイルから読み込む。&lt;br&gt;そんなのが素敵なアプリケーションの作り方だとわかっているけど、実態はめんどくさいのでハードコーディングしてしまいがちだったりする。特に、予定外のことをやるときとかにこの傾向が自分は強い。そういう傾向の人って結構いるような気がするんだけどどうだろう？？&lt;/p&gt; &lt;p&gt;それは置いといて、Swing Application Frameworkを使ったアプリケーションを普通に開発してると、自動的にGUIに絡む部分の文字列はプロパティファイルに格納される。&lt;br&gt;すばらしい。&lt;/p&gt; &lt;p&gt;ということでちょびっと見てみる。&lt;br&gt;まず、ResourceStudyという名前でデスクトップアプリケーションを作る。そして、出来上がったウィンドウにラベルとボタンを置く。ボタンのアクションの設定からsayHelloというメソッドをイベントとして新規に登録する。テキストに「こんにちは」ツールチップに「こんにちはを表示する」を設定して了解をクリックする。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/JavaSwingNetBeansSwingApplicationFramewo_114D2/image.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="215" alt="image" src="http://kazuki.wankuma.com/images/2008/04/JavaSwingNetBeansSwingApplicationFramewo_114D2/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;sayHelloメソッドには、ラベルにこんにちはを表示するコードを書いておく。&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:29c6c330-085f-453f-8444-a6e7126eb87b" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;    @Action
    public void sayHello() {
        jLabel1.setText("こんにちは");
    }
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;これで、実行してボタンを押すとラベルに「こんにちは」と表示されるアプリケーションが出来上がる。&lt;/p&gt;
&lt;p&gt;ということで、プロパティファイルがどんな感じになってるか見てみる。&lt;br&gt;プロパティファイルは、対応するクラスの入っているパッケージのresourcesパッケージにクラス名と同じ名前で作られることになってる。&lt;br&gt;なので、この場合は、resourcestudy.ResourceStudyViewクラスに置いたラベルやボタンの情報を見たいので、resourcestudy.resources.ResourceStudyView.propertiesを見るのがいい。開いてみると、色々な文字列が書かれてるけど、最後のほうに下のような記述がある。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:f1961f5f-b110-4b9a-a714-33e6978cfc2a" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;jLabel1.text=jLabel1
jButton1.text=jButton1
sayHello.Action.shortDescription=こんにちはを表示する
sayHello.Action.text=こんにちは
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;デザイナで設定した文字列等は、ここに自動的に出力されるようになっているのがわかる。&lt;br&gt;ありがたいことだ。&lt;/p&gt;
&lt;p&gt;ただ、やっぱりというか当然のことだけど自分でプログラム中に文字列を埋め込むのはプロパティファイルに自動で記述されない。というか、勝手にされるとうざいことこの上ないだろう。&lt;br&gt;これは、残念なことに自分で手動でもってプロパティファイルに移動させないといけない。Eclipseだと、ここらへんも利ファクタリングでなんとかしてくれたような気がするが、ざっと見た感じNetBeansにそんな機能はなさそうだ。&lt;/p&gt;
&lt;p&gt;ということで、プロパティファイルに一行追加する。&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:17a23807-9912-4e84-8f0e-47a1e5f65136" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="ruby"&gt;sayHello.output.message=こんにちは&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;そしてsayHelloメソッドを下のように書き換える。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:56fe8919-f64f-4b65-a24e-bbc2c6d0d3c9" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;    @Action
    public void sayHello() {
        jLabel1.setText(getResourceMap().getString("sayHello.output.message"));
    }
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;とまぁ、手動でやらなければならないところもあるけど、デザイナ上で指定した文字列とかはプロパティファイルに落とされるようになってるので、大分手間は軽減されるように思う。&lt;/p&gt;
&lt;p&gt;以上！&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/144954.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>kazuki@wankuma.com (かずき)</dc:creator><title>[NetBeans][Java]NetBeans6.1よく使う機能</title><link>http://blogs.wankuma.com/kazuki/archive/2008/06/18/144186.aspx</link><pubDate>Wed, 18 Jun 2008 00:13:00 GMT</pubDate><guid>http://blogs.wankuma.com/kazuki/archive/2008/06/18/144186.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/144186.aspx</wfw:comment><comments>http://blogs.wankuma.com/kazuki/archive/2008/06/18/144186.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/144186.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/144186.aspx</trackback:ping><description>&lt;p&gt;メインのJava開発環境をEclipseからNetBeansに乗り換えて、そこそこの期間がたつ。&lt;br&gt;つかってて思うのは、やっぱりEclipseの方が先行してただけあって痒い所に手が届く。&lt;/p&gt; &lt;p&gt;NetBeans6.1は、若干Eclipseでは出来るのに…！！ということがあったりする。&lt;br&gt;でも、普段使うぶんには特にストレス無く使える感じだ。&lt;br&gt;ってことで、普段自分がプログラムを書いていくときにどういう操作をしてるかをメモっておこうと思う。&lt;/p&gt; &lt;p&gt;こうやると便利だよ？という意見があればコメントにでも書いてくださいm(_ _)m&lt;/p&gt; &lt;h2&gt;プロジェクトの作成&lt;/h2&gt; &lt;p&gt;とりあえず、プロジェクトの新規作成からJavaアプリケーションを作る。&lt;/p&gt; &lt;p&gt;新規作成は、Ctrl + Shift + Nでダイアログが出てくる。&lt;br&gt;EclipseだとAlt + Shift + Nでキーボードで選びやすいような感じのメニューが出てくるけど、NetBeansは無情にも普通のダイアログが出てくる。&lt;br&gt;まぁTabとかで頑張れば普通にプロジェクトの選択とかできるからOKOK。&lt;/p&gt; &lt;p&gt;最初から、目的のプロジェクトが選ばれてたら、Ctrl + Shift + N → Enter → プロジェクト名入力 → Enterでプロジェクトが出来上がる。&lt;/p&gt; &lt;h2&gt;ウィンドウ内の移動&lt;/h2&gt; &lt;p&gt;Ctrl + 数字で色々なウィンドウにフォーカスを移すことが出来るようになってる。&lt;br&gt;よく使うと思われるのは下記の３つくらいかな。&lt;/p&gt; &lt;p&gt;Ctrl + 0 : エディタ&lt;br&gt;Ctrl + 1 : プロジェクトウィンドウ&lt;br&gt;Ctrl + 2 : ファイル&lt;br&gt;Ctrl + 4 : 出力ウィンドウ&lt;/p&gt; &lt;p&gt;これで、大体よく使うウィンドウをいったりきたりできる。&lt;/p&gt; &lt;h2&gt;ソースコードを飛び回る&lt;/h2&gt; &lt;p&gt;プロジェクトも作ったらついにコーディング！コーディング中は、あっちのファイルを開いたり、こっちのファイルを開いたりする。&lt;br&gt;そんなときに使うのは、大体したのような機能。&lt;/p&gt; &lt;p&gt;Ctrl + Shift + B : 選択したクラスやメソッドの定義へ移動&lt;/p&gt; &lt;p&gt;これで、気になるあのクラスやあのメソッドの中身を見ることが出来る。&lt;br&gt;当然jarの中に入ってるようなクラスの場合は、ちゃんとソースを添付しといてあげないと見ることは出来ない。&lt;/p&gt; &lt;p&gt;そして、どんなクラスか見終わったらAlt + ←で戻る。Alt&amp;nbsp; + →で進むこともできるけど、あまり使ってないような気がする。&lt;/p&gt; &lt;h2&gt;&lt;/h2&gt; &lt;h2&gt;&lt;/h2&gt; &lt;h2&gt;ソースを書いてもらう&lt;/h2&gt; &lt;p&gt;Javaは、正直冗長な書き方をしなきゃいけないシーンが多いような気がする言語だ。&lt;br&gt;その象徴だと個人的に思ってるのがgetterとsetterだ。&lt;/p&gt; &lt;p&gt;正直手で書いてたらJavaを嫌いになる人がいっぱいいるであろうgetter/setter。EclipseだとAlt + Shift + Sを押してRでgetter/setterの生成ダイアログが出たような気がする。&lt;br&gt;NetBeans5.5までは、利ファクタリングのフィールドのカプセル化からgetter/setterを作ってた。これが、意外とめんどくさかった。&lt;/p&gt; &lt;p&gt;NetBeans6.1では、まずクラスにフィールドをぽちぽちと定義する。&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:a16b5dd4-8db1-4903-ace9-605a3b1d02b6" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c"&gt;package samplejavaapp;

import java.util.Date;

public class Person {
    private int id;
    private String name;
    private Date entDate;
    private int salary;
    
}
&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;本題からは外れるけど、Ctrl + Shift + Iでインポートを自動的に整理してもらえる。&lt;br&gt;Alt + Shift + Fでフォーマットも整えてくれる。&lt;/p&gt;
&lt;p&gt;このファイルの10行目あたりにカーソルを持っていてAlt + Insertを押すと下のような感じのものが出てくる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="244" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_thumb.png" width="194" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;ここで、取得メソッドおよび設定メソッドを選ぶとダイアログが出てくる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_3.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="136" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;矢印キーとスペースキーを駆使してチェックしたあとにEnterを押すとマウスとか触らずにGetter/Setterが作られる。&lt;/p&gt;
&lt;p&gt;そのほかに、Ctrl + Spaceでの補間もかしこくなってるので、どういうときに押すと、どういう候補をだしてくれるかを抑えてると楽にコーディングが出来るようになる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="84" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;たとえば、Personクラスがあるとして下のようなコードを書くとする。&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d152139c-58eb-4bf2-85fd-4d95e399635d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;Person person = new Person();&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;これは、PerくらいまでうってCtrl + Spaceを押すとPersonが候補に出てくるので、そのままEnter。スペースを１つうってからCtrl + Spaceを押すと、今度は、変数名の候補がいくつか出てくる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_5.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="78" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_thumb_5.png" width="142" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;personを選んでEnter。&lt;br&gt;そして、スペースを空けて" = new "を打ち込んでCtrl + Spaceを押すとPersonが選択候補に出てくるのでEnterを推す。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="199" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_thumb_6.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;コンストラクタの（）まで書いてくれるので;をうってステートメントを終わらせる。&lt;br&gt;こんな感じで1行をかけてしまう。&lt;/p&gt;
&lt;p&gt;手で打ったほうが早いって？？&lt;br&gt;そういう人には必要の無い機能ではあります。&lt;/p&gt;
&lt;p&gt;因みに私はガンガン使ってます。&lt;/p&gt;
&lt;h2&gt;コードをなおしてもらおう&lt;/h2&gt;
&lt;p&gt;コードを書いてると、色々ケアレスミスとかをしてしまう。&lt;br&gt;そんなときに、簡単な間違いとかならNetBeansが直してくれたり、提案をしてくれる。&lt;/p&gt;
&lt;p&gt;たとえばさっきのPerson person = new Person()の後に、person.sayHello();を打ち込むと電球マークが左側に出てくる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_7.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="47" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_thumb_7.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;この状態でAlt + Enterで提案が表示される。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="72" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_thumb_8.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;これを選ぶと、この例だとsayHelloメソッドが生成されて、フォーカスがそっちへいく。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_9.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="42" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_thumb_9.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;因みに、さっき言ったAlt + ←でもとの場所に戻ることができるので問題ない。&lt;/p&gt;
&lt;h2&gt;テストもしてみよう&lt;/h2&gt;
&lt;p&gt;テストファーストといわれるけども、大体コードを書くときの流れは下のような感じでやってしまってる自分がいる。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;思いつく&lt;/li&gt;
&lt;li&gt;書く&lt;/li&gt;
&lt;li&gt;必要だったらユニットテスト&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;このとき、ユニットテストを書くのがだる～ってなってしまうと３は省略されてしまう。&lt;br&gt;（書かなきゃいけないときはだるくても書くけどね！）&lt;/p&gt;
&lt;p&gt;NetBeansでは、プログラムからテストクラスの雛形をある程度はいてくれる機能がある。&lt;br&gt;使い方は簡単でCtrl + Shift + UでOK。&lt;/p&gt;
&lt;p&gt;そうすると、今編集中のクラスのテストをJUnit3で書くか4で書くか聞かれる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_10.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="172" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_thumb_10.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;そして、テストクラスをどんな感じにするか設定するダイアログが出てくる&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_11.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="244" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaNetBeans6.1_1454F/image_thumb_11.png" width="225" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;ここでEnterを押すとテストクラスがある程度できた形で出力される。&lt;br&gt;因みに、テストの実行はShift+F6かAlt+F6あたりになる。&lt;/p&gt;
&lt;p&gt;Shiftだと、選択してるファイルのテストが実行される。Altだと全部実行される。ケースに応じて使い分けよう。&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;とりあえず、ぱっと思いつく使い方で便利なものを徒然なるままに書いてみました。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/144186.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>kazuki@wankuma.com (かずき)</dc:creator><title>[NetBeans][Java]Swing Application Framework その２</title><link>http://blogs.wankuma.com/kazuki/archive/2008/06/15/143818.aspx</link><pubDate>Sun, 15 Jun 2008 22:45:00 GMT</pubDate><guid>http://blogs.wankuma.com/kazuki/archive/2008/06/15/143818.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/143818.aspx</wfw:comment><comments>http://blogs.wankuma.com/kazuki/archive/2008/06/15/143818.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/143818.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/143818.aspx</trackback:ping><description>&lt;p&gt;その１では、NetBeansが作ってくれるプロジェクトの雛形を眺めてみた。&lt;br&gt;その２では、Hello worldにチャレンジしてみようと思う。&lt;/p&gt; &lt;p&gt;とりあえず、前回作ったHelloViewにラベルとボタンを置いて適当な配置にする。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="186" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;各コンポーネントには、適当な名前をつけておいた。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image_3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="174" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;後は、ボタンを押したらテキストフィールドに入力した文字列とHello world!!の文字列と連結してラベルに出力させる。&lt;/p&gt; &lt;p&gt;ここで注意しなきゃならないのが、ボタンを押したときのアクションの指定方法が普通のSwingのときと違う。&lt;br&gt;普通のSwingでは、ActionListenerを実装したクラスを登録するか、Actionインターフェース（実質的にはAbstractActionを継承する）を実装したクラスを登録する。&lt;br&gt;Swing Application Frameworkでは、メソッドに@Actionアノテーションをつけてアクションを指定するらしい。&lt;br&gt;NetBeansからは、ボタンの右クリックメニューの「アクションを設定」から色々設定ができるようになってる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="126" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;アクションを設定ダイアログが出てくるので、下のように新規アクションを作成を選ぶ。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image_5.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="101" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image_thumb_5.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;そして、メソッド名等の情報をぱちぱちと打ち込んでいく。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="216" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image_thumb_6.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;了解ボタンを押すと、ボタンが押されたときの処理を書くメソッドが自動的に作られるので、Hello worldのコードを書いていく。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c29e2fe5-78d1-4295-9ec4-0e69150fb52f" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;    @Action
    public void sayHello() {
        labelOutput.setText("Hello world!! " + textFieldName.getText());
    }
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;実行して、テキストフィールドに適当な値を入れてボタンを押すとちゃんと動いた！！&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image_7.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="121" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_8801/image_thumb_7.png" width="241" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;ボタンとsayHelloメソッドの関連付けがコード上でどのように行われているか見てみた。&lt;br&gt;コードとしては、下の二行がそれっぽい。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:97bd24f1-2f35-4b52-b4a4-6a985d45fbca" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(com.wankuma.kazuki.desktop.HelloApplication.class).getContext().getActionMap(HelloView.class, this);
        buttonHello.setAction(actionMap.get("sayHello")); // NOI18N
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;HelloApplicationをApplication.getInstanceで取得してgetContextでコンテキストを取得して、HelloViewのActionMapを取得している。&lt;br&gt;そして、取得したactionMapからsayHelloという文字列をキーにしてActionを取得してボタンに設定してある。&lt;br&gt;おそらくフレームワークが、@Actionアノテーションを拾ってきて、それを呼び出すActionを自動的に作ってActionMapに登録してくれてるんだと思われる。&lt;/p&gt;
&lt;p&gt;おまけだけど、ボタンに設定したSayHelloというテキストは自動的にプロパティファイルから取得されるようになってる。&lt;br&gt;いい感じだ。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/143818.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>kazuki@wankuma.com (かずき)</dc:creator><title>[NetBeans][Java]Swing Application Frameworkを触ってみる その１</title><link>http://blogs.wankuma.com/kazuki/archive/2008/06/14/143710.aspx</link><pubDate>Sat, 14 Jun 2008 11:42:00 GMT</pubDate><guid>http://blogs.wankuma.com/kazuki/archive/2008/06/14/143710.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/143710.aspx</wfw:comment><comments>http://blogs.wankuma.com/kazuki/archive/2008/06/14/143710.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/143710.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/143710.aspx</trackback:ping><description>&lt;p&gt;Swingというのは、いわずと知れたJavaにくっついてきてるWindowsアプリ作るためのやつです。&lt;br&gt;常々口には出さなかったけど、こいつは、結構いけてるんじゃないかと思ってました。&lt;/p&gt; &lt;p&gt;いや、本当に。&lt;br&gt;最近はXAMLにLoveだけど、Swing Application Frameworkというものがあるというみたいなので、ちょいと触ってみた。&lt;br&gt;とりあえずは、プロジェクトを作ってどんなものが出来るのか見てみる。&lt;br&gt;因みに、Swing Application Frameworkを使った開発もNetBeansでいける。すばらしい。&lt;/p&gt; &lt;p&gt;新規作成からJavaデスクトップアプリケーションを選択する。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_DF/image.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="179" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_DF/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;次のページでは、基本アプリケーションを選択してOK&lt;/p&gt; &lt;p&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_DF/image_3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="168" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_DF/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;これだけのウィザードで結構な数のファイルが作られる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_DF/image_5.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="207" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_DF/image_thumb_4.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;上の画像より下は、アイコンがいっぱいならんでいる。&lt;br&gt;Javaのコードとしては、&lt;/p&gt; &lt;ol&gt; &lt;li&gt;HelloAboutBox  &lt;li&gt;HelloApplication  &lt;li&gt;HelloView&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;の３つになる。&lt;/p&gt; &lt;p&gt;HelloAboutBoxは、アプリケーションの情報を表示するための画面になる。&lt;br&gt;解説するまでもないだろう。&lt;/p&gt; &lt;p&gt;HelloApplicationというクラスは、org.jdesktop.application.SingleFrameApplicationというクラスを継承する形で作られている。&lt;br&gt;こいつは、単一の画面を持つアプリケーションのためのクラスみたいだ。&lt;br&gt;アプリケーション全体のライフサイクルの管理とかを担ってるっぽい。&lt;/p&gt; &lt;p&gt;ちょっとコードをのぞいてみると、startupとかそれっぽい感じのメソッドがある。実際にはstartup以外にもshutdownとかいうメソッドもあったりして、適時オーバーライドして処理をしてくださいということみたいだ。&lt;/p&gt; &lt;p&gt; HelloViewは、メインのウィンドウになる。&lt;br&gt;普通？の感覚だとJFrameを継承して作られたものかな～と思うけど、実はJFrmeじゃなくてFrameViewというクラスだったりする。&lt;br&gt;HelloApplicationのstartupメソッドを見ると下のような感じで画面を表示するようなコードが書かれてる。&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:59cadd4c-4232-461d-a483-3e80980190ac" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;    @Override protected void startup() {
        show(new HelloView(this));
    }
&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;これがSwing Application Frameworkのお作法なのかな？&lt;br&gt;因みにFrameViewはViewクラスを継承しててViewクラスはAbstractBeanを継承する形で作られている。&lt;/p&gt;
&lt;p&gt;それぞれのメンバを眺めてみると大体下のような感じの役割分担になってそう。（あくまで想像）&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;AbstractBean&lt;br&gt;JavaBeansとして必要な基本的なものを提供。&lt;br&gt;プロパティの変更の通知が主っぽい。&lt;/li&gt;
&lt;li&gt;View&lt;br&gt;アプリケーションの1画面に相当するものが備えておくべき機能を提供。&lt;br&gt;ツールバーやメニューバーやステータスバーに、リソース管理やActionMapとかもここらへんで管理してそう&lt;/li&gt;
&lt;li&gt;FrameView&lt;br&gt;JFrameを使った画面に必要な機能を提供。&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;そして、ApplicationのshowメソッドはViewを受け取ることでうまいことやってくれるという寸法のようだ。&lt;br&gt;因みに、showメソッドを見てみるとJComponentやJFrameやJDialogを受け取る形のものもあったりする。&lt;br&gt;なので、昔ながらの作り方で作ったものでも面倒は見てくれるみたいだ。ただ、ViewやFrameViewで提供している便利機能は使えないけど覚悟しとけよってことかな？&lt;/p&gt;
&lt;p&gt;最後に、mainメソッドを覗いてみた。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:465e1727-a5a7-4d50-92a1-da3759e31416" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;    public static void main(String[] args) {
        launch(HelloApplication.class, args);
    }
&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;ぜんぜんたいしたことはやってない。&lt;br&gt;普通のSwingのアプリケーションならEventQueue.invokeLater(new Runn....みたいなくだりを書いてるものに比べると非常にシンプル。&lt;br&gt;アプリケーション起動するよ！ということが明確に書かれてるので好印象。&lt;/p&gt;
&lt;p&gt;ということで、実行！！&lt;br&gt;FileメニューとHelpメニューをもった単純なフレームが立ち上がる。&lt;br&gt;HelpのAboutを押すと、下のような画面も出てくる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_DF/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="180" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaSwingApplicationFramework_DF/image_thumb_5.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;必要最低限のみ出来上がってる感じ。&lt;/p&gt;
&lt;p&gt;ということで今回のまとめ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NetBeansだと簡単にSwing Application Frameworkが試せるみたい&lt;br&gt;（本格的に使うとどうなるかは未知数）&lt;/li&gt;
&lt;li&gt;Applicationクラスが、アプリケーションのライフサイクルとか管理してくれるみたい&lt;/li&gt;
&lt;li&gt;JFrameを直接継承するんじゃなくてFrameViewを使うと色々便利な機能がありそう&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;でした。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/143710.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>kazuki@wankuma.com (かずき)</dc:creator><title>[NetBeans][Java]Webサービスの作り方</title><link>http://blogs.wankuma.com/kazuki/archive/2008/06/11/142933.aspx</link><pubDate>Wed, 11 Jun 2008 23:19:00 GMT</pubDate><guid>http://blogs.wankuma.com/kazuki/archive/2008/06/11/142933.aspx</guid><wfw:comment>http://blogs.wankuma.com/kazuki/comments/142933.aspx</wfw:comment><comments>http://blogs.wankuma.com/kazuki/archive/2008/06/11/142933.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/kazuki/comments/commentRss/142933.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/kazuki/services/trackbacks/142933.aspx</trackback:ping><description>&lt;p&gt;JavaEE5は、Webサービスまで作れるみたいなので、作ってみようと思う。&lt;br&gt;俺のBlogの書き方には二通りあって、やったことを整理して書くのと、やりながら書くのがある。&lt;/p&gt; &lt;p&gt;今回は、やりながら書くので、もしかしたら最終的には諦めてるBlogになってるかもしれないのであしからず。&lt;/p&gt; &lt;p&gt;まずは、HelloWebServiceという名前でエンタープライズアプリケーションを作成する。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="125" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_thumb.png" width="204" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;HelloWebService-ejbｗ右クリックして新規作成から、Webサービスを選択する。&lt;br&gt;com.wankuma.kazuki.webservice.HelloWebServiceという名前で作成した。&lt;/p&gt; &lt;p&gt;そうすると、何かデザイナが表示される。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_3.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="157" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;オペレーションを追加というそれっぽいボタンがあるので押してみる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="64" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_thumb_4.png" width="182" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;そうすると、メソッドを作成するためのダイアログが表示されるので、適当に入力するとよさそう。&lt;br&gt;ここでは、String greet(String name)という感じのメソッドを作るようにした。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_5.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="177" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_thumb_5.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;作成後に、コードエディタを開いてみると下のようなコードになっていた。&lt;br&gt;@WebServiceアノテーションに@Statelessアノテーションがついたクラスが出来ている。&lt;br&gt;@WebMethodや@WebParamもついていて、見た目どんなものになるのか想像できるような雰囲気のコードが出来てる。&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:2c271ec7-e285-4b72-b4f1-18014cbc6d05" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;package com.wankuma.kazuki.webservice;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.ejb.Stateless;

@WebService()
@Stateless()
public class HelloWebService {

    /**
     * Web service operation
     */
    @WebMethod(operationName = "greet")
    public String greet(@WebParam(name = "name") String name) {
        //TODO 実装コードをここに記述します:
        return null;
    }

}
&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;ご丁寧に、TODOまで書かれてるので実装してみた。&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:b0f54bd3-e98e-464f-9827-904bfdf91375" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="java"&gt;    @WebMethod(operationName = "greet")
    public String greet(@WebParam(name = "name") String name) {
        return "Hello world!!" + name;
    }
&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;そして、おもむろにF6を押して実行！！GlassFishに配備され、Hello world!!と書かれたブラウザが立ち上がる。&lt;br&gt;できた～！と思わないほうがいい。これはエンタープライズアプリケーションを作ったときに出来る、普通のWebアプリケーションのデフォの画面です。&lt;/p&gt;
&lt;p&gt;実行するのにそれっぽいのが無いかと探してみると発見。Webサービスの右クリックメニューからWebサービスをテストというのがあった。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="116" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_thumb_6.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;そうすると、下のような画面が立ち上がる。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_7.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="104" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_thumb_7.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;名前にかずきと入力してボタンをぽちっとすると文字化けorz&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="203" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_thumb_8.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;テスト用画面の問題なんだろうか？それとも俺が悪いのだろうか？&lt;br&gt;文字コードの指定とかを何処にもしてない気がするから、抜けてるのかな。&lt;/p&gt;
&lt;p&gt;とりあえず、メインマシンから（Webサービス作ったのはノートPC）WPFアプリケーションをこさえてWebサービスを呼び出すようにしてみた。&lt;br&gt;さくっと作ってみたら日本語もOKだった。多分テスト用の画面がいけてないだけなんだろう。&lt;br&gt;&lt;a href="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_9.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="130" alt="image" src="http://kazuki.wankuma.com/images/2008/04/NetBeansJavaWeb_147A1/image_thumb_9.png" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/kazuki/aggbug/142933.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>