JFrame.frameInit()
ごめんなさい。勝手に上書きしてました。
マニュアルによると、
JFrame を適切に初期化するためにコンストラクタによって呼び出されます。
と書いてあるものの、この意図がよくわかってませんでした。てっきり、paint()とrepaint()の関係のごとく、とりあえずframeInit()の中身を勝手に書いておけば、呼び出してあげるよ、的な何かだと思ってました。ごめんよぉ。
で、どういうコードになったかと言うと、
class MyFrame extends JFrame{ public MyFrame(){ super(); JPanel panel = new JPanel(); getContentPane().add(panel); } protected void frameInit(){ //do nothing } }
こうすると、まあ多分色々な理由があるのでしょうが、getContentPane()でNullPointerExceptionが発生して落ちます。
そして、実際にJFrame.frameInit()の中では
setRootPane(createRootPane());
とか書いてあります。なんか、後々ぬるぽになりそうな予感が漂ってます。鬱。