0

如何为列表中的每个按钮执行 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);

    }

}
4

1 回答 1

3

不要将nulls 添加到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);
}
于 2012-04-29T02:00:59.637 回答