2015-07-10 6 views
2

У меня есть приложение javafx, которое должно работать в полноэкранном режиме на планшете Windows.Сменить виртуальную клавиатуру на AZERTY

Моя проблема, когда клавиатура появляется, она находится в QWERTY, тогда как мой планшет находится в AZERTY.

Итак, вопрос: есть ли способ использовать виртуальную клавиатуру системы или переключить виртуальную клавиатуру javafx на AZERTY?

ответ

0

Определение макета содержится в jfxrt.jar (часть установки Java). Он описывается TextBoard.txt. В jfxrt.jar можно просмотреть 7zip или аналогичные программы. TextBoard.txt в com/sun/javafx/scene/control/skin/

Этот файл загружен com/sun/javafx/scene/control/skin/FXVKSkin.java отвечает за загрузку файла TextBoard.txt. Просмотрите источник javafx (включенный через jdk и содержащийся в javafx-src.zip), чтобы узнать, как он обрабатывается. Возможно, это даст вам достаточно информации для загрузки собственного файла TextBoard.txt.

0

Я нашел вас вопросом, пытаясь приспособить то же самое. Я потратил целый день, пытаясь сделать javafx дисплеем AZERTY-клавиатуры, и я нашел решение!

Хорошо, позвольте мне быть ясным: javafx никоим образом не использовал азертитную клавиатуру, поэтому вам нужно немного взломать.

Решение не является идеальным, и вам придется повторять его каждый раз, когда вы обновляете javafx, но это позволит вам в максимальной степени настроить клавиатуру на всю длину и на произвол судьбы.

РЕШЕНИЕ 1 (грязный, но работает)

Вам нужно будет редактировать файл в JavaFX файл поставляется с JDK

ШАГА:

  1. GO в JDK (в Mac: /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home)

  2. Перейти внутрь jre/lib/ext и cop y javafx jar называется jfxrt.jar в папку на рабочем столе.

  3. Установите EMACS, если у вас нет его и открыть скопированный файл банку с этим программным обеспечением

  4. Просмотр списка файлов для поиска COM/ВС/JavaFX/сцены/контроль/кожи/TextBoard.txt список сортируется из AZ, поэтому используйте его (имеется более 6000 файлов).

  5. Открыть его и ЗДЕСЬ вы есть. Изменение персонажей в любом порядке делает вас счастливыми. Я присоединился к ордену азертю.

  6. Сохраните и скопируйте jfxrt.jar туда, где он был. Готово.

Примечание: не пытайтесь извлечь банку и заархивировать ее, она не будет работать, так как jdk хранит индексный список файлов.

Результат: azerty javafx virtual keyboard in action

РЕШЕНИЕ 2 (Clean, но я не закончил)

я выкопал при е на классы JavaFX я выяснил, что класс, отвечающий за загрузку файла TextBoard.txt что выдает клавиатуру FXKVSkin Этот класс предназначен для приема клавиатур другого типа, чем один стандартный по умолчанию qwerty. Все, что вам нужно сделать, это добавить это в вашем коде:

textFieldThatYouUse.getProperties() поставил (FXVK.VK_TYPE_PROP_KEY, "mykeyboard");.

Где mykeyboard - это файл, который вы создали, например TextBoard.txt с именем MykeyboardBoard.txt (важные буквы).

FXKVSkin теперь будет искать файл MykeyboardBoard.txt, и вот здесь мое приключение закончилось. Вам нужно будет заставить FXKVSkin найти ваш файл, я попытался добавить файл в путь к классам во время выполнения решений Here, но это не сработало.

Если кто-нибудь может решить эту проблему, добавьте ее в качестве ответа, это будет менее грязное решение.

Надеюсь, что решения помогут некоторым неанглийским динамикам! : p

Смежные вопросы