java - 如何区分 ActionListener 中的多个 JSlider?

标签 java actionlistener jslider

我想创建一个 GUI,在其中显示动态数量的行,其中每行包含一个 JSlider 和一个显示值的 JLabel(请参阅模型)。

Multiple JSlider with related labels

现在我必须在相关 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/

相关文章:

java - 如何修改列值? (日本公共(public)事务局)

java - 将二进制数减 1 而不将其转换为整数

java - 使用另一个面板的值刷新 JPanel

java - ActionListener原理

java - 多值JSlider组件?

java - 替换两个美元符号之间的值

java - 需要帮助逆向工程算法

java - JButton 按下(不释放)

java - JSlider 在 10 秒后隐藏,就像在电视机中一样

java - JSlider 绘制不完整,与 Netbeans 配合使用