Swing屏幕键盘

5

我正在Windows XP上使用Java开发一个KIOSK系统,需要制作屏幕键盘。但是我不知道如何实现它。请问有没有人了解这方面的知识并能够给我提供帮助。谢谢!


请在您的问题中提供任何额外信息。并不是每个用户都会阅读评论。 - guerda
2个回答

4
我为公司实现了SWT和AWT中的OSK。我们使用ini文件初始化OSK布局,您可以在其中定义键盘布局(大小、字体、键盘行外观、键标签和键操作)。
首先,您应该使用这些ini文件生成键盘。这很快完成。您应该启用所创建按钮以及顶部窗口上的焦点。否则,获取键动作的组件会一直失去焦点。
第二步是实现事件分发管理器。您必须将OSK键事件发送到所有监听事件对象。您可以使用Robot发送事件,或使用FocusManager获取焦点组件并直接设置它。
对于SWT,它工作得很好,但在AWT中存在一些线程和焦点问题。

-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());
              }
        });
    }
}

也许只是我个人的看法,但这似乎并没有解决问题。 - johnc
我同意,这是一个不同的问题。虽然感谢提供的信息,但你最好创建一个新问题并自己回答,这样人们才能更好地搜索到它。 - Stephane Grenier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接