Должность и упаковка Jframe () в потрясающем WM [закрыто]

StackOverflow https://stackoverflow.com/questions/6084977

Вопрос

<в сторону CLASS="S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль= «Статус»>
Этот вопрос вряд ли поможет любым будущим посетителям; Он имеет отношение только к небольшому географическому району, конкретному моменту во времени или необычайно узкой ситуации, которая обычно не применима к всемирной аудитории Интернета. Для того, чтобы помочь сделать этот вопрос более широко применимым, Посетите справочный центр .
Закрыто 9 лет назад .

Каждый раз, когда я звоню Pack () метод на JFrame, он перемещается в исходное положение, где было при запуске. Когда я пытаюсь получить местоположение JFrame (GetLocation, GetLocationScreen), это все еще такое же, как начальное положение, неважно, я двигаю окно. Я бегаю Archlinux с удивительным WM. Пожалуйста, помогите.

спасибо uiii

Редактировать: То, что я просто хочу, это уметь показывать или скрывать некоторые компоненты в главном окне (что вызывает изменение размера макета), не перемещая окна в исходное положение.

Edit2: Так что я только что нашел, что Paŭlo (с комментариев) правильно. Это отлично работает в XFCE, но в потрясающем WM нет.

edit3: Я действительно не понимаю, почему вы голосуете на вопрос вниз. Это первый раз, когда я использую Pack () Функцию, поэтому я не знаю, что это правильное поведение. В документе Java не существует объяснения в документе API Java, если в положении окна изменится. Я просто использую это первым в потрясающем WM, который я использую в качестве моего оконного менеджера, поэтому я не знаю, что должно вести себя другим способом. Я пытался найти что-то об этом в Интернете, но ничего не нашел. Я думаю, что этот вопрос может быть полезен для кого-то после того, как я нашел решение. Существуют, конечно, другие разработчики Java, которые используют потрясающие WM (или некоторые подобные с той же проблемой).

Это было полезно?

Решение

Я нашел решение!Проблема в том, что у Java есть некоторые проблемы с некоторыми оконными менеджерами.Решение простое - просто установите WMNAME Утилита ( http://tools.sockless.org/wmname) и запустить 'wmname LG3D'.Он изменяет фактическое имя оконного менеджера на LG3D, и Java считают его совместимым WM.

Я знаю это до моей проблемы.Поэтому я пытаюсь установить имя LG3D глобально в файл .xinitrc, но он выглядит не работает.Я должен позвонить «wmname LG3D» явно в каждом терминале, который запускает несколько приложений Java.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top