我正在制作一个简单的计算器,到目前为止,我做了一个文本字段,我可以在其中输入数字,如果键是从键盘输入的话,它会监听。
private void jButton1MouseClicked(java.awt.event.MouseEvent evt)
{
resultKeyTyped(KeyEvent.VK_1);
}
我想要的是点击让我们说' 1'用鼠标向这个方法发送一个键事件,就好像我在键盘上点击它一样。尝试用机器人做按键,但它说'无效类型在这里不好用''或类似的东西。我想用鼠标点击监听器运行resultKeyTyped方法,如下所示:
amazon.com
答案 0 :(得分:0)
在我看来,最好的方法(假设你点击一个Button而不是其他东西)将是这样的:
Button button1 = new Button("1");
button1.addActionListener(new ActionListener() {
int thisKey = KeyEvent.VK_1;
@Override
public void actionPerformed(ActionEvent e) {
resultKeyTyped(thisKey);
}
});
现在,您需要更改的一件事是resultKeyTyped需要将int作为参数而不是keyevent。根据我的理解,你所关心的只是按下了哪个键,而不是按下了多长时间或类似的东西。因此,无论您何处调用resultKeyTyped,都将其传递给KeyEvent.getKey()
希望这有帮助!
P.S。如果你真的想要一个keyevent,你可以使用keyevent构造函数,但是因为你还在使用机器人,我很确定你只关心密钥
答案 1 :(得分:0)
要拨打resultKeyTyped
,您必须传递KeyEvent。您可以使用适当的构造函数创建KeyEvent:
KeyEvent event = new KeyEvent(textField, 0, System.currentTimeMillis(), 0, KeyEvent.VK_1);
resultKeyTypes(event);
虽然根据您的描述(例如simple calculator
),听起来您可能希望选择不同的方法:
ActionListener
添加到JButton
ActionListener
的实施过程中,使用JTextField
方法更改setText
文字