2011-07-27 28 views
10

Windowsのタスクバーの高さをダイナミックに取得してアプリケーションのフルスクリーンを設定する方法がわかりません。
あなたが知っているように、タスクバーは4つのポジション、すなわちボトム、トップ、左または右にあることができるので、ウィンドウ境界を設定する現在の位置を知ることができるかどうかは疑問です。Windowsのタスクバーの高さ/幅

EDIT:

GraphicsDevice myDevice; 
Window myWindow; 

try { 
    myDevice.setFullScreenWindow(myWindow); 
    ... 
} finally { 
    myDevice.setFullScreenWindow(null); 
} 

しかし、あなたは、フルスクリーンモードで実行するようにアプリケーションをしたい場合は、私がNullPointerException

+0

Jframe/frameを使用していますか? – Pratik

+0

はい、申し訳ありません、私はJFrameを使用しています – mastaH

答えて

5

JFrameを作成するとき。 JFrameのAPIのsetExtendedState()メソッドの呼び出し

jFrame = new JFrame("TESTER"); 
jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH); 

MAXIMIZED_BOTH設定はフルスクリーンと、自動的に口座にタスクバーの位置を取るために、あなたのウィンドウを設定しますを確認します。

+0

これは解決策かもしれませんが、私はJFrameのフルスクリーンを設定し、 "通常"のサイズに戻るトグル方法を望んでいました。 – mastaH

+0

'jFrame.setSize(450,450)'のようなデフォルトサイズを設定し、ウィンドウの上部にある最大化ボタンを押すと 'jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);を呼び出すと、2つのサイズを切り替えることができます。 –

+0

ボタンを使ってmaxとnormalを切り替える方法はありますか? – mastaH

2

をgettinのよ、あなたはでそれを入力することができます: ルーカスのリンクを使用して、私はこれをtryied適しGraphicsDeviceを取得しsetFullScreenWindow(Window)-methodを使用して:

GraphicsDevice myDevice = GraphicsEnvironment. 
    getLocalGraphicsEnvironment().getDefaultScreenDevice(); 
Window myWindow; 

try { 
    myDevice.setFullScreenWindow(myWindow); 
    ... 
} finally { 
    myDevice.setFullScreenWindow(null); 
} 

さらに(およびより完全な)について。 Docsを参照してください)

+0

今すぐチェック – mastaH

21

必要な場合は、Windowsのタスクバーの高さを得ることが可能である:

あなたが使用することができます
Dimension scrnSize = Toolkit.getDefaultToolkit().getScreenSize(); 
Rectangle winSize = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds(); 

int taskBarHeight = scrnSize.height - winSize.height; 
1

int taskbarheight = Toolkit.getDefaultToolkit().getScreenSize().height 
    - GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().height(); 

またはあなたにも、使用することができます。

JFrame frame = new JFrame(); 
frame.setSize(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getSize(); 
0

これを私が書いたプログラムの一部です:

public enum Location { 
    TOP, RIGHT, BOTTOM, LEFT; 
} 

private static final class Taskbar { 
    public final Location location; 
    public final int width, height; 

    private Taskbar(Location location, int width, int height) { 
     this.location = location; 
     this.width = width; 
     this.height = height; 
    } 

    public static Taskbar getTaskbar() { 
     Rectangle other = GraphicsEnvironment.getLocalGraphicsEnvironment() 
       .getMaximumWindowBounds(); 
     return new Taskbar(other.x != 0 ? Location.TOP 
       : (other.y != 0 ? Location.LEFT 
         : (other.width == IFrame.width ? Location.BOTTOM 
           : Location.RIGHT)), IFrame.width 
       - other.width, IFrame.height - other.height); 
    } 
} 

本質的に、Taskbar.getTaskbar()を呼び出すと、その位置(TOPRIGHTBOTTOMLEFT)、およびその幅と高さに関する情報を含むタスクバーを与えます。

関連する問題