NetBeans GUIビルダ ウインドウサイズの指定

NetBeansにはGUIビルダという非常に高機能ものが付いている。
ほとんどVisualStudioのように画面を構築できる。


Appletの制限(?)でコンポーネントを重ねることが出来ないので、
コンポーネント上にボタンなりを置こうとしたり、
すでに配置してあるコンポーネントの間に置いたりするとレイアウトが崩れることがあるが、
それ以外は非常に良好な使いがってである。


新規作成→プロジェクト→Javaデスクトップアプリケーションを選択すると、
空っぽのウインドウ(ファイル名:〜View.java)が一つできる。
さて、こいつにボタンなりを配置して、さて画面サイズの指定を。
と思ったところ、それらしいプロパティがない。
さらには、Viewクラスは、org.jdesktop.application.FrameViewの派生クラスでJFrameではない。
setSize()やpack()なんてメソッドはないのだ。
ソースを見てみると、mainPanelに配置したコンポーネントを突っ込んでいたので、
mainPanel.getParent()を駆使し、JFrameまでたどり着いたもの、setSize()をいくらかけてもそれが適用されない。
(setVisible()をtrueにしてみたところ、別のウインドウが開いたので、これはまったく別物のようだ。)
他にも数手試してみたがどれもだめ。


なんでやねん!ということで、google先生にも聞いてみたがそれらしい回答は得られなかった。
さて、このViewクラス、main()メソッドがない。
mainメソッドはどこにあるかというと、〜App.javaの中にある。
この中を探ってみると、startup()メソッドでAppクラスのshow()メソッドを呼び出している。
しかも引数として、Viewクラスを渡しているではないか。
ここだな。と感づきさっそく
View.getFrame()からsetSize()を呼び出してみた。
あれ?うまく行かない。


どうしたことだと、呼び出し順を変えてみたところ、
FrameView f = new 〜View(this);
show(f);
f.getFrame().pack(); // or setSize()
と呼び出すことで、うまいことサイズが適用された。
show()メソッドの後に呼び出すというのがキモらしい。


色々苦心したがなんとか解決できたので、良しとするが、
この辺は結構基本的な事なので、サイズ指定をビルダ上で出来ないのは非常に面倒だ。