Высота/ширина панели задач Windows
Я не могу понять, как получить динамическую высоту панели задач Windows, чтобы установить мое приложение в полноэкранном режиме.
Как вы знаете, панель задач может находиться в четырех позициях: внизу, сверху, влево или вправо, поэтому мне интересно, можно ли также узнать текущую позицию для установки границ окна.
EDIT:
Используя ссылку Lukas, я попытался это сделать:
GraphicsDevice myDevice;
Window myWindow;
try {
myDevice.setFullScreenWindow(myWindow);
...
} finally {
myDevice.setFullScreenWindow(null);
}
Но я получаю NullPointerException
Ответы
Ответ 1
При создании JFrame
. Вызов метода setExtendedState()
в API JFrame
jFrame = new JFrame("TESTER");
jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
Параметр MAXIMIZED_BOTH устанавливает ваше окно в полноэкранный режим и автоматически учитывает положение панели задач.
Ответ 2
При необходимости можно получить высоту панели задач Windows:
Dimension scrnSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle winSize = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
int taskBarHeight = scrnSize.height - winSize.height;
Ответ 3
Если вы хотите, чтобы ваше приложение запускалось в полноэкранном режиме, вы можете ввести его, получив подходящий GraphicsDevice
и используя setFullScreenWindow(Window)
-method:
GraphicsDevice myDevice = GraphicsEnvironment.
getLocalGraphicsEnvironment().getDefaultScreenDevice();
Window myWindow;
try {
myDevice.setFullScreenWindow(myWindow);
...
} finally {
myDevice.setFullScreenWindow(null);
}
Для дальнейшей (и более полной) информации. см. Документы)
Ответ 4
Вы можете использовать:
int taskbarheight = Toolkit.getDefaultToolkit().getScreenSize().height
- GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().height();
или вы также можете использовать:
JFrame frame = new JFrame();
frame.setSize(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getSize();
Ответ 5
Это часть программы, которую я написал:
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()
даст панель задач, содержащую информацию о ее местоположении (TOP
, RIGHT
, BOTTOM
, LEFT
), ее ширину и высоту.