SWT でついったークライアント書いてみようとしてみた
SWT は Standard Widget Toolkit の略で何が Standard なのか分からないけど*1ウィジェット・ツールキットの 1 つだよ。
Eclipse に使われてるウィジェット・ツールキットとして有名だね。
っていうか、他のソフトにも使われ…てるんだよね?*2
えーとね、SWT は X っぽいなーって思った。
いやまあ、Display クラスがあるからだと思うけど。
これがまた分り易いかと思えば WindowsForms とか GTK+ とかとはちょっと違うので分かり難い。
まあとりあえず窓を表示するところからやってみよう。
元のソースはここ[github.com] にあるよ。
Display display = new Display();
まずは Display オブジェクトを作成するよ。
Display オブジェクトは Shell オブジェクトを作成するのに必要なんだけど、Shell クラスって何だと思う?
そう、Shell はウィンドウだ。
次は Shell オブジェクトを作るよ。
Shell shell = new Shell( display );
やあ(´・ω・`)
この Shell オブジェクトはサービスだから落ち着いて生成して欲しい。
うん。これだけなんだ。
もっと大掛かりなものかと思ったかね?
このソースはサンプルだからウィジェット少ないけど、多いとめんどいんだぜ?
よーし、次は Shell オブジェクトの設定を行うよ:
shell.setText( "Window Sample1" ); // ウィンドウのタイトルを "Window Sample1" にしとく。 shell.setSize( 300, 200 ); // ウィンドウのサイズを 300x200 にするんだと思います。
みりゃわかると思うけど、コメントつけておいたよ。
まあ、なくてもいいんだけどね。
次はウィンドウを開くよ。
shell.open();
さっさとイベントループに行こう:
while ( !shell.isDisposed() ) { if ( !display.readAndDispatch() ) { display.sleep(); } } display.dispose();
まあ、あれだよ。
これもみりゃわかる。
ウィンドウ閉じる時に dispose メソッド呼ばないといけないんだけど、ウィンドウは閉じるときに dispose() されるだろうし、
残るは display だけって感じなのかな。
つーことで、エントリタイトルの SWT にしか触ってないけどまあいいや。