如何为列表中的每个按钮执行ActionListener?我正在使用JGraphMenu
&想要显示每个项目的提醒。
这是我的代码:
public static void main(String[] args){
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
List<String> MenuItem = new ArrayList<String>();
MenuItem.add("Choose The XML File");
MenuItem.add("Generate the tree");
MenuItem.add("Generate the latex code");
MenuItem.add("Generate automata");
List<ActionListener> listeners = new ArrayList<ActionListener();
for(int i=0; i<4; i++){
listeners.add(null);
}
JGraphMenu menu = new JGraphMenu(
ConstantesStyles.NOIR,
JGraphMenu.VERTICAL,
MenuItem, listeners
);
JPanel panel = new JPanel();
panel.add(menu);
panel.setSize(50, 100);
f.add(panel, BorderLayout.WEST);
f.setSize(500, 400);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}
答案 0 :(得分:3)
不是将null
添加到ActionListener
的列表中,而是添加侦听器(在我的示例中,同一个侦听器,但您明白了):
List<ActionListener> listeners = new ArrayList<ActionListener()>;
ActionListener listener = new ActionListener() {
@Override void actionPerformed(ActionEvent e) {
// do something
}
};
for(int i=0; i<4; i++){
listeners.add(listener);
}