摆动屏幕键盘

时间:2009-01-13 08:08:22

标签: java swing

我正在Windows XP上使用Java的KIOSK系统。并且需要做一个屏幕键盘。我不知道怎么做。所以你们可以帮助我做这件事。任何人都对此有所了解。 谢谢

2 个答案:

答案 0 :(得分:4)

我为我的公司在SWT和AWT中实施了OSK。

我们使用ini文件初始化OSk布局,您可以定义键盘布局(大小,字体,键盘线的外观,键标签和键操作)

首先你应该生成键盘读取这些ini文件。这是非常快速的。 您应该在创建的按钮和顶部窗口上启用聚焦。否则,获得关键动作的组件会一直失去焦点。

第二步是实现事件调度程序管理器。您必须将OSK键事件发送到所有侦听事件对象。您可以使用Robot发送活动,也可以使用FocusManager获取焦点组件并直接设置。

对于SWT来说,它的效果非常好,但在AWT中它们是一些线程和焦点问题。

答案 1 :(得分:-1)

这个出现在搜索如何在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());
              }
        });
    }
}