[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[b-free: 985] Java と GUI



Aki です。

去年の夏休み、Java を使って、ちょっとした 3D Graphic のプログラムを組ん
だのですが(4000 lines 位。例のように例のごとく7割で中断されている)、
そのときの感想では、java は確かに、Window や Panel を簡単に作れてよかっ
た気がします。再表示の Scheduling と Thread 周りで、一寸わかりづらい(と
いうか、今でも理解不能な)部分もありましたが。

たとえば、Console Windowを作るとします。で、その内部に線やら何やらを表示
するわけですが、扱いやすくするために、表示が累積するとします。ふつうの
Screen を再現するわけです。で、その Window に再表示要求がきたら、勝手
に、累積された Image を表示してもらうわけです。その Window への表示要求
はクラスを使いましょう。Rect Object を送れば四角が、Line Object を
Window に送れば線がかかれるわけです。そういった Console Window をすぐに
Java で書けといわれると、少し戸惑います。なぜなら、SUN の site もそうい
った例は提示してないからです。まあ、実際、答えを思いつけば大したことはな
いのだけど。

たとえば、そんな Console Window を表示し、内部の矩形領域を選択可能としま
しょう。選択された矩形領域を、別の Window に等縮尺で表示しようとします。
すると、ウインドウの生成は表示領域の大きさではなく外寸法で指定するので、
いっぺんに困ってしまいます。これは、Mandelbroat Set を DBM 法で描こうと
したときに引っかかった問題です。
# Mandelbroat のほうも、結局、9割で中断してるな。
# 一つ一つ、終わらせよぅ。>今年わ。


そういったわけで、Java は結構癖があり、GUI を本当に自由に扱うにはかなり
面倒なことになりそうです。最近 Window 周りの Event の流れは大分書きやす
くなりました(JDK 1.1)が、それでも、多重継承が使えないという重大な不満事
項があります。それを補うためか Inner Class はあからさまに OOP の考え方を
無視した ad hoc な付け足しに見えますし、個人的には、B-free のGUI を担う
のは、Java にはなって欲しく ”ない” という感想があります。

Java VM もどうやら、高速化のために、仕様が変わるらしいですね。なんか忘れ
たけど、Java の分厚い本に書いてあった。「ユーザーの不満を吹き飛ばすため
に現在新技術を研究中」と。<注:情報源不確。


そういうわけで、(JVM の実装は歓迎。でも)GUI は別の言語に担当して欲しい
です。

- Aki.