я знаю, что Java, работающая на JVM, делает ее независимой от платформы. Недавно я учился разрабатывать настольные приложения, поэтому у меня вопрос: как сделать так, чтобы мой экран приложения выскакивал точно вверху справа/слева, внизу справа/слева или по центру? Например, для правого верхнего угла мы можем просто использовать :frame.setLocation(0,0)
или для центра, один хороший, независимый от платформы способ, который я нашел здесь, был:frame.setLocationRelativeTo(null)
а как насчет остальных 3 ребер? я видел несколько больших кусков кода, использующих другие классы (классы измерений/точек) или пакеты, но либо они были слишком сложными, либо ориентированы на конкретное направление (например, один ответ здесь, который я видел, легко сделает мое приложение всплывающим внизу; но если мой Учитель сказал, что хочет видеть всплывающее окно приложения сверху, мне нужно перекодировать все решение). Я также пытался использовать getmaximumsize().height/width
, но безрезультатно.
я бы хотел, чтобы кто-нибудь помог мне с кодом, обрабатывающим все возможные края и центральное расположение (даже если он использует другие классы/пакеты; если он удовлетворяет всем вышеперечисленным случаям, ваш ответ приветствуется). и еще один мини-вопрос: есть ли какие-либо переменные MAXWINDOW
в java, например, экран моего окна составляет 15,6 дюйма, а панель инструментов 0,5 дюйма ниже делает идеальное дно для моего jframe 250 * 100 пикселей равным 0,15,5 дюйма, переменная, сообщающая, что perticular идеальное значение? и изменение его значения в соответствии с расположением моей панели инструментов или операционных систем, имеющих меньшие/большие размеры и расположение панелей инструментов??
это просто пришло на ум, потому что мне показалось, что такая переменная может быть весьма удобной и добавляет больше к платформенно-независимая природа java.
EDIT...
спасибо @bjorn и @madprogrammer за их слишком хорошие ответы. Я никогда не думал, что проблема «получения размера окна без панели задач для местоположения» потребует такого большого кода, учитывая пункт, не зависящий от платформы. Я чувствую, что ответ Бьорна в настоящее время меня полностью удовлетворяет. но ответ Мэда более точен (или точен, мой английский) к проблемам, которые я цитировал.
JFrame#setExtendedState
и развернул окно независимым от платформы способом, который не будет размещать части окна под панелью задач/док-станцией - person MadProgrammer   schedule 11.07.2017