1

我有一个代表图片的 JButtons HashMap。

this.nahledy.put(s.getName(), new JButton());

this.nahledy.get(s.getName()).addActionListener();

但我不知道如何告诉 actionlistener 按下了哪个按钮,因为 e.getActioncommand() 什么都没有,并且当用户按下按钮时 s.getName() 已经改变,所以我也不能使用它。

4

1 回答 1

1

它并不完美,但也许你可以使用这样的东西

public void actionPerformed(ActionEvent e) {
   JButton source = (JButton)e.getSource();
   Set<String> keys = nahledy.keySet();

   for(String key : keys) {
      if(nahledy.get(key).equals(source)) {
         // do something with your button
      }
   }
}

通过这种方式,您可以找出用于此按钮的 s.getName() 的值。

于 2012-05-13T10:48:28.553 回答