読者です 読者をやめる 読者になる 読者になる

いろいろ備忘録日記

主に .NET と Python絡みのメモを公開しています。

フレームを画面に最大化して表示

java swing

正式なやりかたってどうやるのでしょうか?
javadocを見るとsetStateメソッドがありますが、このメソッド現在は使用されていないって
書いてあるし、、、、setExtendedStateメソッドにMAXIMIZED_BOTHを渡すと、確かに最大化
されるのですが、本当に画面一杯に広がってしまいwindowsではスタートバー毎覆われます。

てことで、コードを書くとこんな感じ。

addWindowListener(new java.awt.event.WindowAdapter() {
    public void windowOpened(java.awt.event.WindowEvent evt) {
        //
        // 最大化して表示
        //
        Toolkit toolkit = getToolkit();

        Dimension screenSize   = toolkit.getScreenSize();
        Insets    screenInsets = toolkit.getScreenInsets(getGraphicsConfiguration());

        int width  = screenSize.width  - (screenInsets.left + screenInsets.right);
        int height = screenSize.height - (screenInsets.top  + screenInsets.bottom);

        setBounds(0, 0, width, height);
    }
});

スクリーンサイズを取得して、そこから内部insetsの値を引けばアプリケーション表示領域の
最大サイズが算出できます。

いいやり方しってたら、教えてくださいm(_ _)m > 識者の方