Windows任务栏高度/宽度

时间:2011-07-27 13:20:00

标签: java taskbar

我无法弄清楚如何让Windows任务栏高度动态地设置我的应用程序全屏 如您所知,任务栏可以位于四个位置:底部,顶部,左侧或右侧,所以我想知道是否可以知道设置窗口边界的当前位置。

编辑: 使用Lukas链接我尝试了这个:

GraphicsDevice myDevice;
Window myWindow;

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

但我开始NullPointerException

5 个答案:

答案 0 :(得分:22)

如有必要,可以获取Windows任务栏高度:

Dimension scrnSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle winSize = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();

int taskBarHeight = scrnSize.height - winSize.height;

答案 1 :(得分:6)

创建JFrame时。拨打JFrame API中的setExtendedState()方法

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

MAXIMIZED_BOTH设置会将您的窗口设置为全屏,并自动考虑任务栏的位置。

答案 2 :(得分:2)

如果您希望应用程序以全屏模式运行,可以通过获取合适的GraphicsDevice并使用setFullScreenWindow(Window)-method来输入:

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

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

获取更多(更完整)的信息。见Docs

答案 3 :(得分:1)

您可以使用:

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

或者你也可以使用:

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

答案 4 :(得分: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),其宽度和它的高度。