如何区分ActionListener中的多个JSliders?

时间:2015-11-11 19:10:40

标签: java actionlistener jslider

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

Multiple JSlider with related labels

现在我必须在相关滑块的更改上更新每个标签。我想使用一个常见的ActionListener。我认为有一些类似于JButton的ActionCommand来识别哪个滑块确实发生了变化。但是没有: - (

我唯一的想法是存储一个带有key = slider引用和value = label引用的HashMap。有更优雅的解决方案吗?

编辑: 我的意思是更优雅:不需要存储滑块和标签的引用,所以在更改行数时我不必更新HashTable。

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效

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
}