我想创建一个 GUI,在其中显示动态数量的行,其中每行包含一个 JSlider 和一个显示值的 JLabel(请参阅模型)。
现在我必须在相关 slider 发生变化时更新每个标签。我想使用一个通用的 ActionListener。我认为有类似 JButton 的 ActionCommand 之类的东西来识别哪个 slider 确实发生了变化。但没有:-(
我唯一的想法是存储一个带有 key=slider 引用和 value=label 引用的 HashMap。有更优雅的解决方案吗?
编辑: 更优雅我的意思是:不需要存储 slider 和标签的引用,因此在更改行数时不必更新哈希表。
最佳答案
这样的东西应该有效
public class MyClass implements ActionListener() {
JSlider slider1 = new JSlider();
JSlider slider2 = new JSlider();
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == slider1) {
//do logic for slider 1
} else if (e.getSource() == slider2) {
//do logic for slider 2
}
//etc...
}
//rest of class here
}
关于java - 如何区分 ActionListener 中的多个 JSlider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33658067/