GroovyでSwing
なんというイカしたタイトル!!
...てなことはどうでもいい。
各所をあたって,どうにか「ドラッグ&ドロップしたら,そのファイルをリストアップするJList」を作ったよ。
参考リンク先は以下の通り。
- http://terai.xrea.jp/Swing/FileListFlavor.html
- Swingでドラッグ&ドロップするサンプル
- 1GBレンタルサーバー・プロバイダー Amusement BiG-NET | www5.big.or.jp/~tera/Labo/Java2/j2dnd.html
- Swingでドラッグ&ドロップするサンプル
- O'Reilly Media - Technology and Business Training
- SwingBuilderの基礎
- O'Reilly Media - Technology and Business Training
- SwingBuilderの応用(widget()の使い方)
- http://groovy.codehaus.org/SwingBuilder+with+custom+widgets+and+observer+pattern
- widget()の使い方その2
- http://groovy.codehaus.org/Categorical+Widget+List
- SwingBuilderで作れるウィジェットの一覧
まだ試せてないが,ListenerやAdapterをGroovyらしく実装する方法はないものか...。
- http://groovy.codehaus.org/Groovy+Alternatives+to+Inner+Classes
- コンポーネント側に"
addXXXListener()
"があれば,こんなテクも使えるみたい(今回試したDropTargetListenerはaddできんかったけど)
- コンポーネント側に"
- http://glenp.net/articles/swing-events-with-groovy-closures
- 面白いけど,いちいちクラス作ってられない。metaClassいじってもできるかな?
From Java to Groovy in a Few Easy Steps - DZone Java
「JavaからGroovyへ」だそうな。
実際にGroovy使い始めて思ったけど,Javaの資産があればあるほど,手を出しやすいスクリプト言語ですヨ。「こんなことやりたい」と思ったときに,それを実現できるJavaのライブラリも思いつけば,Groovyで書いた方がJavaで書くより遥かに楽。
#というか,柔らかく書ける。って言った方がニュアンスが近いかな。
楽に書けるってのは,JetGroovyによるところが大きいので,Groovyそのものの評価とは言えないかも。
それでも,ここ数日テストコードとかちょいとした便利スクリプトをGroovyで書いてると「この際だからプロダクトコードもGroovyでいいんじゃね」と思い始めるオレガイル。
#はたしてこれは中二病の一種か?
それはそうと,リンク先で最後に紹介してあったコード:
class HelloWorld { def name def greet() { "Hello ${name}" } } def helloWorld = new HelloWorld() helloWorld.name = "Groovy" println helloWorld.greet()
これはファイル名を「HelloWorld.groovy」にすると動かないよ。
ps.
そんなことが分かるくらいGroovyを理解できてきたんだけど,Groovyって時おり「元がJavaだから,こうなんだな」みたいな発想が必要で,びみょうにテンション下がんだよねー。:-P
😎 Be Easy
ここで見つけた。
→easyb: Introducing Conversational Unit Tests for Java - DZone Java
正しくは,JavaでBDDすんときの振る舞い記述をGroovy風なDSLで書けるライブラリ(フレームワーク?)。「Groovy風なDSL(ってGroovyそのものだけど)」という点でJDaveやJBehaveより斬新。
GSpecとかぶる気もしなくもないが,Java界隈じゃBDDは,まだ流行ってる感じはしないので,より良いものが出てくれるのはありがたい。
ダウンロードモジュールにサンプルが含まれてなかったけど,リポジトリのほうにはあったんで,気が向いたら試す。
#「svn/trunk/easyb/behavior」がサンプルっぽかった。
→Google Code Archive - Long-term storage for Google Code Project Hosting.