今日のScala

最近ちょくちょくつかってるSWTでGUI.

import org.eclipse.swt._
import org.eclipse.swt.layout._
import org.eclipse.swt.widgets._
import org.eclipse.swt.events._
 
object MySWT {
  def main(args:Array[String]) = {
    val display = new Display()
 
    val shell = new Shell(display)
    shell.setText("MySWT")
    shell.setSize(200, 100)
    shell.setLayout(new GridLayout());
 
    val l1 = new Label(shell, SWT.PUSH);
    l1.setText("Hello");
 
    shell.open()
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep()
      }
    }
    display.dispose()
  }
}

ここまでScala的要素なし.

Javaのクラスを使い始めると急にEcipse並のコード補完がほしくなるなぁ.

Scala + SWT + Mac OS X の環境だと,このサイトのように環境変数を設定して実行しないとたいへんたくさんエラーがでる.理由はよくわかってない.さらに,環境変数を設定してもいまいち様子がおかしい.(ブロックしまくる) なぞだ…

Javaだとビルド/実行時のclasspath設定が結構煩雑になりがち*1なので,ビルドツールを導入.Javaのビルドツールといえばmavenかantかと思って,antのxmlを途中まで書いたところで力尽きてRakefile(http://gist.github.com/139600の下側)にしました.コンパイラをデーモンとして走らせておいて,高速コンパイルとかできるらしいので,そのうちやる.

*1:へたするとライブラリ毎にパスを指定せんとだめ