你怎么模拟击JTextField?相当于JButton doClick()?
-
20-09-2019 - |
题
我的工作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被调用。但再怎么你猜在框架上,以产生一个鼠标点击?看起来随机逻辑我。