Swing-UI Java-программ не работает отлично с awesome-wm. awesome - это оконный менеджер для UNIX, который автоматически изменяет размеры окон программы, а Swing-UI не распознает эти изменения правильно. Меня не волнует, что это потрясающе, или Ява виновата, что я хочу знать, могу ли я изменить свои Java-программы в некотором смысле, чтобы они работали с удивительным. Так что пользователи моих программ получат правильный опыт, даже если они используют экзотических оконных менеджеров.
Как я могу исправить Java-GUI-программу (swing), что она работает с awesome-wm?
Ответ 1
Из справочной страницы awesome:
BUGS
Of course there´s no bug in awesome. But there may be unexpected behaviours.
Java applications which use the XToolkit/XAWT backend may draw grey windows only. The XToolkit/XAWT backend breaks ICCCM-compliance
in recent JDK 1.5 and early JDK 1.6 versions, because it assumes a reparenting window manager. As a workaround you can use JDK 1.4
(which doesn´t contain the XToolkit/XAWT backend) or you can set the following environment variable (to use the older Motif backend
instead): AWT_TOOLKIT=MToolkit
Ответ 2
Простейшее обходное решение - получите wmname из suckless и используйте его, чтобы установить имя диспетчера окон в LG3D:
wmname LG3D
98% времени это устранит проблему.
Ответ 3
Вы можете обнаружить, что это аналогичная проблема, с которой сталкиваются с использованием Compiz и Java (по крайней мере, по Ubuntu), но я предполагаю.
Исправление для этого (взятое из здесь) заключается в добавлении следующей переменной среды в вашу программу:
AWT_TOOLKIT="MToolkit"