gpt4 book ai didi

java - 监听击键或按下按钮

转载 作者:行者123 更新时间:2023-12-02 05:26:35 25 4
gpt4 key购买 nike

我正在构建一个计算器应用程序,以了解如何使用 Swing 构建 GUI。我希望能够单击计算器按钮,同时也能够在键盘上输入它们。

我一直在研究KeyStroke,但我不完全确定如何在当前的 JButton ActionListener 中实现它。

这是按下按钮的示例:

public void actionPerformed(ActionEvent e) {
if(e.getSource()==btn1){
if(calcOperatorActive){display.setText("1");calcOperatorActive=false;}
else if(calcOperator=="equals"){display.setText("1");calcTempMem=0;calcOperator="none";}
else{display.setText(display.getText()+"1");}
}

我希望能够在 if 语句上添加一个关键监听器,类似于:

if((e.getSource()==btn1)|(KeyStroke.getKeyStroke("1")){
//the code
}

但我收到一条错误消息,指出无法比较 boolean 值和 KeyStroke。

最佳答案

这不是有效的 Java:

if((e.getSource()==btn1)|(KeyStroke.getKeyStroke("1")){
//the code
}

从 boolean 表达式的第一部分开始,这里

(e.getSource()==btn1)

一个 boolean 表达式,非常好,但第二部分不是这样:

(KeyStroke.getKeyStroke("1")

对于要与复合 boolean 测试一起使用的 if 表达式, boolean 测试必须是实际的 boolean 表达式。因此,在您的情况下,对于有效的 java,您需要

if (booleanExpression1 || booleanExpression2) {
//...
}

或者两个语句都必须是计算结果为 true 或 false 的 boolean 表达式,并且第二个语句 (KeyStroke.getKeyStroke("1")

<小时/>

好的,但这只是您的代码/问题的第一个问题。另一个问题是,没有可用于击键部分的 boolean 表达式,因为这不是 Java 处理击键的方式。相反,您需要为此使用键绑定(bind)(而不是 KeyListener)。

例如,请看一下 camickr 对类似问题的回答 here .

关于java - 监听击键或按下按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com