そして WindowListener を継承してみる

newJavaInstance 関数は jnew 関数へとリネーム。短くなってタイプしさすさ向上。

listener = jnew: "java.awt.event.WindowListener";
listener.forward = null;
listener.windowClosing = ^do
    window dispose;
end;
window = jnew: "java.awt.Frame";
window setTitle: "Hello Kuzha!";
window setSize: 320 240;
window addWindowListener: listener;
window show;

Java の Interface を jnew すると、そいつが継承されたオブジェクトを自動的に作ってあれこれします。ちなみに現在の kuzha では抽象クラスを jnew できないので、forward を使って代用してみました。
こんなのでもちゃんと動きます (^-^;;

TODO

  1. 抽象クラスを jnew できないかどうか……
  2. 引数付きコンストラクタを呼び出せるようにしておく
    • Class<?>.newInstance() かわいいよ