gpt4 book ai didi

java - 使用 KeyListener JAVA 的计算器

转载 作者:行者123 更新时间:2023-11-30 10:25:26 25 4
gpt4 key购买 nike

我是编程初学者所以请耐心等待,我正在尝试使用 KeyListener 制作一个计算器,这就是我得到的(剪切代码)

    public void keyPressed(KeyEvent e){
int code = e.getKeyCode();
System.out.println(" Code: " + KeyEvent.getKeyText(code));

if(KeyEvent.VK_ADD == e.getKeyCode()){
tmp = Double.parseDouble(txtDisplay.getText());
txtDisplay.setText(display);
add = true;

}
if(KeyEvent.VK_DIVIDE == e.getKeyCode()){
tmp = Double.parseDouble(txtDisplay.getText());
txtDisplay.setText(display);
div = true;
}
if(KeyEvent.VK_SUBTRACT == e.getKeyCode()){
tmp = Double.parseDouble(txtDisplay.getText());
txtDisplay.setText(display);
sub = true;
}
if(KeyEvent.VK_MULTIPLY == e.getKeyCode()){
tmp = Double.parseDouble(txtDisplay.getText());
txtDisplay.setText(display);
mul = true;
}
if(e.getKeyCode()==KeyEvent.VK_BACK_SPACE){
txtDisplay.setText("");
tmp = 0;
toSolve = 0;
}
if(e.getKeyCode() == KeyEvent.VK_ENTER){
toSolve = Double.parseDouble(txtDisplay.getText());
if( add == true ){
toSolve = tmp + toSolve;}

else if ( sub == true ){

toSolve = tmp - toSolve;}

else if ( mul == true ){

toSolve = tmp * toSolve;}

else if ( div == true ){

toSolve = tmp / toSolve;}

txtDisplay.setText(Double.toString( toSolve ));

add = false ;
sub = false ;
mul = false ;
div = false ;

}


}

我想让它执行操作,但当我运行它时,它似乎只是在做加法。我认为这可能符合我的编程逻辑。另外,我怎样才能删除文本字段中的操作符号,因为它还会转换符号,因此会引发异常。

最佳答案

尝试使用 keyReleased() 而不是 keyPressed():

public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
//Do something
}

Java 中的一些 Listener 有很多问题,如果您不质疑其背后的原因,有时它会为您省去很多麻烦^^

关于java - 使用 KeyListener JAVA 的计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46218165/

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