【问题标题】:How to program java virtual keyboard for touchscreen?如何为触摸屏编写java虚拟键盘?
【发布时间】:2014-07-31 12:54:13
【问题描述】:

我在网上找到了很多解决方案,但没有一个适合我的问题。我在JFrame 中有一个键盘,点击它会在JTextField 中写入另一个JFrame。 由于JText 中的OnClickEvent 出现了键盘,类似于iphone 键盘。 如何将按钮链接到另一个框架中的JTextField

【问题讨论】:

  • 您是自己绘制键盘还是使用 JButton 或其他摇摆组件?
  • 那么你知道如何使用ActionListeners吗?

标签: java swing keyboard jframe jtextfield


【解决方案1】:

首先,您的 Swing 键盘需要知道将值传递到何处。为它添加一个 JTextComponent 字段变量和一个 setter:

private JTextComponent textComponent;

JTextComponent 是 JTextField、JTextArea 等的基类 ...

那么你需要编写一个ActionListener来处理这些动作:

private class KeyboardActionListener implements ActionListener {

    public void actionPerformed(ActionEvent e) {
        try {
            JButton key = (JButton) e.getSource();
            textComponent.getDocument().insertString(textComponent.getCaretPosition(), key.getText(), null);
        } catch (BadLocationException ex) {
            Logger.getLogger(KeyboardDialog.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

第三步是将所有按钮添加到该动作侦听器。当一个按钮被点击时,它会从 ActionEvent 中获取该按钮,并将其值插入到当前的 carret 位置。请记住,这不会处理功能键。为此,请查看JTextComponent

【讨论】:

  • 我如何将这个动作监听器用于框架中的所有 jtextcomponent?
  • 解决了!我传入我的键盘 JFrame 的构造函数,即 JTextComponent,然后在“textComponent.getDocument().insertString(textComponent.getCaretPosition(), key.getText(), null);”中调用它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 2017-06-23
相关资源
最近更新 更多