Я пытаюсь портировать на Ubuntu
свое приложение, построенное на SWT
, и столкнулся с проблемой с т. наз. "overlay scrollbars". Когда программа работает из-под Eclipse
, всё нормально, но когда она запускается из JAR
, скроллбары становятся "overlay scrollbars" - превращаются в тонкие оранжевые полоски. При этом события от скроллбаров тоже меняются (видимо, какие-то другие значения в stateMask
или в detail
), и программа перестает их обрабатывать (игнорирует). Для моей программы такие скроллбары категорически не подходят (даже если бы я разобрался с событиями), мне нужны традиционные скроллбары и нужно самому особым образом обрабатывать их события.
Исправить это поведение легко - достаточно добавить export LIBOVERLAY_SCROLLBAR=0
в ~/.profile
, но это негодный вариант - мне нужно, чтобы любой пользователь мог запустить программу, просто ткнув мышкой по JAR-файлу, без необходимости делать какие-то специальные настройки в системе,
поэтому я ищу способ сделать то же самое из своего программного кода. Я новичок в программировании для Linux
, и, видимо, плохо понимаю, как можно решать подобные задачи программно. Пробовал в своем коде перед загрузкой SWT выполнить
System.setProperty("LIBOVERLAY_SCROLLBAR", "0");
и
new ProcessBuilder("export LIBOVERLAY_SCROLLBAR=0").start();
но ни то, ни другое эффекта не дает. При этом установка переменной SWT_GTK3=0
таким вот образом
System.setProperty("SWT_GTK3","0");
очевидно, срабатывает, т. е. дает ожидаемый эффект. Возможно, дело в том, что LIBOVERLAY_SCROLLBAR
срабатывает только при входе пользователя, а SWT_GTK3
- в любой момент, лишь бы была уже установлена к моменту загрузки SWT.
Как можно побороть эти "overlay scrollbars" из программного кода? P.S. Работающие решения для других языков, возможно, помогут найти решение и для JAVA - пробема не JAVA-специфическая.
Не подключается к удаленному серверу:
Дали задание создать свою реализацию TreeSet, в котором должны быть методы add(E e) и List<E> get()
Есть RecyclerView в виде сетки из квадратовНужно реализовать режим выбора квадрата, то есть при выборе другого квадрата, подсветка у прежнего должна...
Добрый деньНаписал приложение в котором есть ListView и написал для нее адаптер