希望这个标题能很好地解释我的问题。我有一个JToolBar,dateBar,我想像这样添加按钮:
for (Day d : newCal.getDateList()) {
dateBar.add(new JButton(d.toString()));
}
即对于集合中某个对象的每一个,向JToolBar添加一个新Button。这是有效的,除了我不知道如何/如果我可以添加一个actionListener到按钮,所以我可以执行一些计算一旦点击其中一个。
非常感谢,希望我已经足够清楚了。
Ps - 我应该补充一下
JButton button = new JButton(d.toString());
button.addActionListener(this);
dateBar.add(button);
似乎不起作用,即使该方法包含在实现actionListener中的类
也是如此答案 0 :(得分:1)
在创建按钮的同一循环中添加actionListener。
示例:
for (Day d : newCal.getDateList()) {
JButton button = new JButton(d.toString());
button.addActionListener(todo);
dateBar.add(button);
}
或者,您可以将Action对象传递给构造函数中的按钮。
for (Day d : newCal.getDateList()) {
dateBar.add(new JButton(new CalendarAction(d.toString()))));
}
答案 1 :(得分:1)
试试这个..
for (Day d : newCal.getDateList()) {
JButton button = new JButton(d.toString());
button.addActionListener(this);
dateBar.add(button);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("your button label"){
// do your action
}
}