Bernhard's Weblog - Groovy SwingBuilder FormLayout

いちいちGroovy起動すんのにコマンドプロンプト開くのもアレだし,どうせならGUIでも作ろうかなぁと思ってみれば,Swingってよく知らないやという罠が。:-P
そんな自分のスキルを棚に上げ,今さらSwing(というかMetal L&F)ってのも味気ないし,どうせGroovyだし(?)なんて意味があるんだか無いんだかわからん理由をこねてJGoodiesに手を出してみた。
#実際,FormLayout使いやすいし。


そこで見つけたのが,このエントリのリンク先。まんまFormLayoutの使い方を載せてくれているのがありがたい。
この人,intの二次元配列で苦労していたようだけど,Groovy1.5で試してみたら,こんなコードですんなり動いたよ。

    layout.columnGroups = [[1, 5], [3, 7]] as int[][];

EDTまわりは,そもそもSwingのEDT(Event Dispatch Thread)をよくわかってないんで,なんとも言えない。ただ,内部クラスや無名クラスが使えないかわりにクロージャ使うってのは分かった。
#今のSwingBuilderみると,.edt(Closure)とか.doLater(Closure)とかあるね。
#→Groovy 1.5の新機能


あと気になったのが,イベントリスナの張り方。これは,InfoQの記事にサンプルが書いてあった(これもまたクロージャ)。
「GroovyMarkupは,なんちゃってメソッドとクロージャのかたまりなんだ」って念仏唱えて挑まないと,GroovyMarkupのコードはギョっとするね。

def textlabel
def frame = swing.frame(title:'Frame', size:[300,300]) {
  borderLayout()
  textlabel = label(text:"Clicked ${count} time(s).",
                    constraints: BL.NORTH)
  button(text:'Click Me',
         actionPerformed: {
           count++
           textlabel.text = "Clicked ${count} time(s)."
         }, constraints:BorderLayout.SOUTH)
}
続きを読む

ATOK2008購入

ATOK2006を買って以来,すっかりATOKのトリコになってしまったので,2008にアップグレード(2007は見送ってた)。
買ったのは広辞苑バンドルのAAA優待版。ATOK2006んときの明鏡国語辞典ジーニアス英和/和英辞典はまんま引き継げたので,ちょっと良い買い物だったかも。


これを機会にRealforceATOKキー,元に戻そうかな。

ATOK 2008 for Windows

ATOK 2008 for Windows