如何以编程方式触发JTextField
正在侦听上的事件的上的按键事件ENTER
?
我的关键事件的侦听JTextField
器声明如下:
myTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
// Do stuff
}
}
});
谢谢。
KeyListener
上JTextField
简单地增加ActionListener
时,将触发ENTER
按下(谢谢你@robin +1咨询) JTextField textField = new JTextField();
textField.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
//do stuff here when enter pressed
}
});
KeyEvent
使用requestFocusInWindow()
的组件和使用Robot
类来模拟按键像这样:
textField.requestFocusInWindow();
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
} catch (AWTException e) {
e.printStackTrace();
}
例:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class Test {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField textField = new JTextField();
textField.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
System.out.println("Here..");
}
});
frame.add(textField);
frame.pack();
frame.setVisible(true);
textField.requestFocusInWindow();
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
} catch (AWTException e) {
e.printStackTrace();
}
}
});
}
}
更新:
正如@Robin和@mKorbel这样的建议,您可能需要DocumentListener
/
DocumentFiler
(过滤器允许在JTextField
更新之前进行验证)。
在进行IMO数据验证时,将需要此功能。
它显示了如何将添加DocumentFilter
到JTextField
数据验证。文件过滤器的原因是,正如我所说,它允许在显示chnage之前进行验证,这更有用IMO
问题内容: 我想在运行时触发一个元素,例如: 要么 如何才能做到这一点? 问题答案: 语法如下: 有关Angular Extend方式的更多信息,请参见此处。 如果使用的是 旧版本的angular ,则应使用 trigger 而不是 triggerHandler 。 如果需要应用停止传播,则可以按以下方式使用此方法:
问题内容: 如果我去这里 然后单击“启动演示模态”,即可完成预期的操作。我将模式用作注册过程的一部分,并且涉及服务器端验证。如果有问题,我想将用户重定向到显示我的验证消息的相同模式。目前,除了用户的物理点击之外,我无法弄清楚如何显示模式。如何以编程方式启动模型? 问题答案: 为了手动显示模式弹出窗口,您必须执行此操作 以前,您需要使用对其进行初始化,以便在您手动执行之前不会显示它。 模态容器的ID
我需要将基于“SNS”的触发器添加到Lambda函数中,但要创建事件源映射-AWS CLI命令参考中只显示DynamoDB、Kinesis、SQS。 用于基于SNS、S3等的触发器的aws lambda create event source mapping命令失败,原因是事件源arn: 调用CreateEventSourceMaps操作时发生错误(InvalidParameterValueExc
问题内容: 我有一个隐藏的文件输入元素。是否可以通过按钮的单击事件来触发其 选择文件 对话框? 问题答案: 如果您希望使用自己的按钮来上传文件而不是使用,则可以执行以下操作: 请注意,我使用而不是。您不能在未显示的文件输入上调用click事件。
有没有办法以编程方式创建firestore触发器? 我希望使用火还原触发器来保持复合对象在初始化位置的一致性- 但是,我不需要查看集合中的每个“主要”文档,因为只有有限数量的“主要”对象具有“次要”关系——我的假设是,只查看特定文档而不是整个集合将提高总体性能并降低成本,因为触发器只会为相关的文档触发文档,与集合中的文档总数相比,要侦听的文档数量要少得多 虽然我可以将这些具有该关系的文档放在一个单
问题内容: 我想以编程方式在标签上触发click事件。 仅仅调用click()似乎没有任何作用,或者至少它没有弹出文件选择对话框。 我一直在尝试使用侦听器捕获事件并重定向事件,但是我无法像某些人单击它那样使它真正执行事件。 问题答案: 你可以这样做,在所有的浏览器,IE理应 不会 允许它,但Mozilla和Opera没有。 当您在GMail中编写邮件时,“附加文件”功能是针对IE和支持该功能的任何