JPanel against NetBeans2008年08月15日 17時58分16秒

Java Swing を使っていて同じ配置の画面を使い回したい時は、JPanel を拡張するのが常套手段だ。JPanel を拡張したクラスの内部で、様々なコンポーネントを配置しておき、JPanel の変わりに使い回す。特に変哲もない作業だ。Java の軽量なので Swing だが、Swing に限った事ではない。

NetBeans で、新規にファイルを作るときの選択子に、JPanel や JInternalFrame 等もある。折角なので試してみることにした。

が、一筋縄ではいかない。何が悪いのかまだ判っていない。取り合えず、


public class MyPanel extends javax.swing.JPanel

として、クラスが生成された。アプリケーションを編集していた時の様に、対話的にマウスを使ってコンポーネントの配置が出来る。

しかし、それをインスタンス化して表示することがうまく出来ない。MyView の中で、JPanel を一つだけ作り、そのインスタンス化のコードを MyPanel にカスタマイズした。しかし、それでは何かがうまくいかない様だ。ここ二、三日思考錯誤や検索し資料を探す事をを繰り返しているがうまくいかない。パネルの中にボタン等を配置したのだが、パネルは真っ白だ。ちなみに、MyView は NetBeans で Swing アプリケーションを作るときに自動生成されるクラスだ。FrameView を基底にして、MyApp からインスタンス化される。

有用な手立てがうまく見付からないので、自ら JFrame を用いて、ウインドウを生成すると、問題なく表示が出来る。つまり、JPanel を拡張した、MyPanel 自体には問題がないと言うことだ。

次に、MyView を見ると、initComponents() がある。怪しいのはこれぐらいしか見当たらない。そこで、コンストラクタで initComponents() を呼び出さない様に。した。すると、MyPanel の中のコンポーネントがやっと表示された。しかし、これをやってしまうと、折角 NetBeans で作成した他の部分が台無しになってしまう。

NetBeans を使うと GUI は手で書くのに比べて、大幅に短い時間で、より好みの配置に出来る。しかし、今回の様に、NetBeans 流技に沿わないといけないところはとても判りづらい。元々、手書きでやっていたときは、困りもしない変哲もないところでつまずくときがある。手書きでやっていた時は何も問題が無かったので、むしろ、このような場合の問題追求はとても歯痒い。

さて、NetBeans 流の JPanel の呼び出し方を探さねば。

次回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2008/08/15/3694038/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。