gpt4 book ai didi

java - 一元运算符感叹号的错误操作数类型 Action 监听器

转载 作者:行者123 更新时间:2023-12-01 22:15:35 30 4
gpt4 key购买 nike

我收到“一元运算符的错误操作数类型 Action 监听器!”第 2 行出现错误,以及第 2 行和第 8 行出现错误“不兼容的类型: boolean 值无法转换为 ActionListener”。我在第 5 行的 .start() 处也有一个错误,指出无法找到符号开始。有人知道这里出了什么问题吗?

private void walkjButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
if(!walk){ //error here
walk = true; //here
timer = new Timer(40, walk);
walk.start(); //here
}
else{
timer.stop();
walk = false; //and here
}
}

private ActionListener walk = new ActionListener(){
public void actionPerformed(ActionEvent e){
if(leftLegWalk){
while (leftLegLength <=50){
leftLegLength -= 5;
}
while (leftLegLength >=20) {
leftLegLength +=5;
}
}
else {
while (rightLegLength <=50) {
rightLegLength -=5;
}
while (rightLegLength >=20) {
rightLegLength += 5;
}
}
}
};

boolean running = false;
int count = 0;
boolean wave = true;
boolean leftLegWalk = true;
boolean rightLegWalk = false;
int leftLegLength = 50;
int rightLegLength = 50;
private Timer timer;

最佳答案

你混淆了你的变量。变量 walk 是一个 ActionListener。您不能将其视为 boolean(使用 if 测试其真值,分配 truefalse)或作为一个Thread(调用start())。很难确定你想要实现什么,但我认为你想要的是:

private void walkjButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
if(!running){
running = true;
timer = new Timer(40, walk);
timer.start();
}
else{
timer.stop();
running = false;
}
}

关于java - 一元运算符感叹号的错误操作数类型 Action 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31127179/

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