S2Swingを試してみた

チョイ前からSeasar関連を扱っており、それで知ったS2Swing
もともとSwingはプログラムの勉強でゲームを作ってた頃にがりがり書いていたぐらいで、
そんなによくはわかってない。


いつもは、Eclipseを使っているのですが、VEは更新されてない(らしい)ので、
思い切ってNetBeans*1を使ってやってみました。



画面でデスクトップアプリを作るのは、VBAでしかやったことなかったから、
まずNetBeansのよさにビックリ!
超配置とか楽です。



またS2Swingの感想ですが、
非常にソースコード量が少なく、とても楽しく開発ができそうです。
アノテーションでのActionマッピングが素敵ですね。
てかSwingってこんなに早かったっけ?
バリデーションも素敵です。
独自バリデーションの追加方法もアノテーション追加ではなく、
クラス指定なところが素敵です。(独自アノテーションも可能なのかな?)
双方向バインドもかなり素敵!
JavaFxも試してみましたが、S2Swingのほうがお気軽な感じがしました。
(まだJavaFxプラグインもいけてないですしね。。。)
Swingってこんなにかっこいい見た目になったのね。。。


ただNetBeansとの絡みでいろいろはまったので覚書。

自動にリソースインジェクション

NetBeansは自動でその設定を入れてくれます。
がその設定部分はソース編集でいじれない。

プロパティウィンドウの「text」プロパティにて、「リソースとして定義」チェックボックスを外したら治りました。
これ毎回やらなきゃならない?めんどくない?
追記
「インスペクタ」ウィンドウからフォームを選択して
右クリック「プロパティ」⇒「自動リソース管理」⇒「オフ」でできた。
リソースを自動で作ってくれる分には十分いいので、
最初は自動作成
最後にオフって感じで

配置したプロパティは直接編集不可

labelとかtextBox配置すると、プロパティとしてセットしてくれるのですが、
もともとのプロパティ宣言部を直接編集できません。
なので@ActionTargetとか気軽につけれません。。。

これも、配置されたコンポーネントを右クリックして、
「コードのカスタマイズ」を選択して、「変数宣言コード」にて追加できる。
・・・
ちょっとめんどい。。。
Action名を表示しながら@ActionTargetとか書きたいのにな。。。

Modelクラスのラベル

これはNetBeans関係ないかもしれませんが、エラーメッセージについて、
モデルクラスのプロパティを

[propertyName].label = [customLabel]

の形式で[Model].propertiesに書いたのですが、
うまいことリソースから読み込んでくれませんでした。。。
これはまだハマり中。。。
NetBeansコンポーネントおいて、
できたinitComponentsメソッドを、
initializeメソッドで呼び出すみたいなことをしているから駄目なのかな。。。
う〜ん。。。
それ以外のリソースは読み込んでくれるのに。。。

*1:ver 6.5.1