gpt4 book ai didi

java - 在 stateChanged() 中调用函数

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

我得到了 A 类,点击按钮后:

if (source == buttonA){          
new classB(this);
}

此外,A类有一个名为

的函数
function(int a);

在B类我有

public class classB extends JFrame implements ChangeListener {    

public classB(A a) {
public void stateChanged(ChangeEvent e){
JSlider source = (JSlider)e.getSource();
tmp = source.getValue();
a.function(tmp);
}
}
}

但是a无法解析。我怎样才能以其他方式实现这一目标?

最佳答案

您应该将 classB 更改为:

  public class classB extends JFrame implements ChangeListener {
private A a;

public classB(A a) {
this.a = a;
}

public void stateChanged(ChangeEvent e) {
JSlider source = (JSlider)e.getSource();
int tmp = source.getValue();
a.function(tmp);
}
}

解释

这个类有几个问题。首先是构造函数中嵌套的 stateChanged 函数。去掉这个,意味着 classB 需要一个对类 A 的引用,这就是为什么它需要一个 private A a; 字段,并且需要是在构造函数中设置。此外,变量 tmp 未声明,请始终在使用前声明一个变量。

使用这个也可以:

int tmp;                    //<-- variable declared, you can now assign a value to it.
tmp = source.getValue();

关于java - 在 stateChanged() 中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26344811/

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