我的工作Java项目和需要有一个按键模拟击JTextField.我在寻找什么是相当于JButton doClick()方法。

我想有按键"进入"执行完全相同的功能作为一个点击JTextField.

不知道什么其他的信息来提供。在此先感谢。

有帮助吗?

解决方案 2

OK,感谢您的帮助。我想我没有说清楚,但现在我已经发现了一种方法,使我的代码工作,感谢你的一些想法。

我已经想到刚刚创建被称为由两个功能的私有方法,但部分代码需要知道的JTextField用户点击。我发现.getFocusOwner(),这让我与福克斯(JTextField中)引用当前项目。像这样

    public void keyPressed(KeyEvent e) {
        if(e.getKeyCode()==KeyEvent.VK_ENTER) {
            Object which = JFrame.getFocusOwner();                
            if(which.getClass() == JTextField.class)
                foo(which);
         }
    }

    public void mouseClicked(MouseEvent e) {                
        Object which = e.getSource();
        if(which.getClass()== JTextField.class) {
            foo(which);
        }
    }

有可能是一个更好的方式来做到这一点,但基本上我有JTextField中的阵列和程序运行正常,当用户点击了未来的JTextField,但是当按下进入我不知道该怎么称呼JTextField的那刚刚进入,所以我想模拟在JTextField中(这要求聚焦)点击。我想我应该只是解释了我的整个问题。

感谢您。

其他提示

public void simulateKey(KeyEvent e, Component c) {
   Field f = KeyEvent.class.getField("focusManagerIsDispatching");
   f.setAccessible(true);
   f.set(e, Boolean.TRUE);
   c.dispatchEvent(e);
}

发送"输入"你JTextField.这是偷 在这里,.

如果您希望同样的事情发生都因鼠标和按键,那岂不是更有意义,有一个由两个调用方法?也就是说,你有一个像fieldClicked它获取两个由MouseListener并通过KeyListener称为方法。这将是更容易调试 - 少摆弄的事件,这是非常令人困惑 - 而且可能更容易阅读

  

我要的是用户按下时   进入,它会调用相同的代码时   他们点击在帧的任何地方

不过没有道理给我。

当用户点击在所述框架上的任何地方几件事情发生:

a)所述文本字段失去焦点

b)中一些其他部件获得焦点

您可以一个ActionListener添加到文本字段。按下回车键时的ActionListener被调用。但再怎么你猜在框架上,以产生一个鼠标点击?看起来随机逻辑我。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top