Качающаяся экранная клавиатура - PullRequest
5 голосов
/ 13 января 2009

Я работаю в системе KIOSK на Java в Windows XP. И нужно сделать на экране клавиатуру. Я понятия не имею об этом, что делать. Так что вы, ребята, пожалуйста, помогите мне сделать это. У любого есть представление об этом. Спасибо

Ответы [ 2 ]

4 голосов
/ 13 января 2009

Я внедрил OSK в SWT и AWT для своей компании.

Мы инициализируем раскладку OSk, используя ini-файл, где вы можете определить раскладку клавиатуры (размер, шрифт, как выглядит линия клавиатуры, метка и действие клавиши)

Сначала вы должны сгенерировать клавиатуру, читающую эти ini-файлы. Это делается очень быстро. Вы должны включить фокус на созданных кнопках, а также в верхнем окне. В противном случае компонент, который получает ключевые действия, постоянно теряет фокус.

Второй шаг - внедрение диспетчера событий. Вы должны отправить ключевые события OSK всем прослушивающим объектам событий. Вы можете отправить событие с помощью Robot или получить фокусированный компонент с помощью FocusManager и установить его напрямую.

Для SWT это работает очень хорошо, но в AWT есть некоторые проблемы с многопоточностью и фокусом.

0 голосов
/ 14 февраля 2009

Этот обнаружился в поиске того, как перейти в режим заблокированного киоска в java / swing ... - И мне потребовалось некоторое время, чтобы выяснить, как это сделать, так что вот для всех, кто оказался здесь, когда я сделал:

public class FullScreen extends JWindow {

    public FullScreen()
    {

      getContentPane().add(new JLabel("A JFrame Kiosk"), BorderLayout.NORTH);

      JButton closeButton = new JButton("Close");

      closeButton.addActionListener( new ActionListener()
          {
              public void actionPerformed( ActionEvent ae )
              {
                  System.out.println("Close button Pressed");
                  FullScreen.this.setVisible(false);
                  System.exit(0);
              }
          });
      getContentPane().add(closeButton, BorderLayout.CENTER);
    }

    public static void main(String[] args) throws Exception {

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {      
                GraphicsEnvironment.
                    getLocalGraphicsEnvironment().
                        getDefaultScreenDevice().
                            setFullScreenWindow(new FullScreen());
              }
        });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...