gpt4 book ai didi

java - 在 AWT 中获取 AdjustmentListener 事件的来源

转载 作者:行者123 更新时间:2023-11-29 03:02:51 24 4
gpt4 key购买 nike

我有不同的 AdjustmentListener,例如:

a.addAdjustmentListener(this);
b.addAdjustmentListener(this);
c.addAdjustmentListener(this);

我有一个实现 adjustmentValueChanged 的​​方法:

public void adjustmentValueChanged(AdjustmentEvent e){

}

我想根据调用 a、b、c 中的哪一个来执行不同的操作。比方说,

public void adjustmentValueChanged(AdjustmentEvent e){
String a = //the method I am looking for
if(a == "a") {
// do something
} else if(a == "b"){
// do something else
} else if(a == "c"){
// do something else
}
}

我知道对于 ActionEvent,有 getActionCommand().toString()。 AdjustmentEvent 有类似的东西吗?

或者我如何处理发生的事件?

更明确地说,a、b、c 是 JScrollbar。

最佳答案

你可以为a,b,c设置一个名字:

JScrollbar a = ...;
a.setName("a");

并在监听器方法中评估名称以找出导致事件的滚动条:

public void adjustmentValueChanged(AdjustmentEvent e){
String name = ((JScrollbar)e.getAdjustable()).getName();
if ("a".equals(name)) {
// do a something
} else if ...

另一种解决方案可能是将可调变量与对 a、b、c 的引用进行比较,前提是它们存储在监听器方法可访问的字段中:

JScrollbar a, b, c; // class fields in the listener or an outer class

public void adjustmentValueChanged(AdjustmentEvent e){
if (a == e.getAdjustable()) {
// do a something
} else if ...

关于java - 在 AWT 中获取 AdjustmentListener 事件的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33754735/

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