首页 > 代码库 > Java开发小结:用得比较顺手的事件监听

Java开发小结:用得比较顺手的事件监听

        第一次听说监听是三年前,做一个webGIS的项目,当时对Listener的印象就是个“监视器”,监视着界面的一举一动,一有动静就触发对应的响应。

         通过对界面的某一或某些操作添加监听,可以自发地调用监听函数/监听类,对操作作出反应。举个栗子:被监听的操作是“你惹你妈生气了”,添加的响应是“你妈给你爸打电话,你爸回家了,你爸打你一顿 ”。所以不管什么时候,只要“你惹你妈生气了”,都会触发这个操作的监听,最终结果是每次你都会被你爸打一顿。屡试不爽,无一例外。这就是事件监听,java.util.EventListener。

        Listener分很多种,但我总结不出来一个宏观框架,这里只把常用的CS监听列出来讲讲,不足留待以后补充:ActionListener,MouseListener,PopMenuListener等等。

            技术分享

1. 直接在控件中添加监听,如给“保存按钮”添加ActionListener监听

 

1         saveCharaEditButton.addActionListener(new ActionListener() {
2             
3             @Override
4             public void actionPerformed(ActionEvent e) {
5                 // TODO Auto-generated method stub
6                 save();
7             }
8         });

 

2.写一个监听类,继承监听接口。添加事件监听时只需要 实现这个监听类就ok了

 1     public JPanel setRightPanel(){
 2         JPanel rightPanel = new JPanel();
 3         double[][] size = {{15,TableLayout.FILL,30,TableLayout.FILL,35},{10,30,10,TableLayout.FILL}};
 4         rightPanel.setLayout(new TableLayout(size));
 5         JButton saveCharaEditButton = new JButton("保存编辑");
 6         JButton enableCharaEditButton = new JButton("启用编辑");
 7         rightPanel.add(enableCharaEditButton, "1,1");
 8         rightPanel.add(saveCharaEditButton, "3,1");
 9         rightPanel.add(setCharaJCTablePanel(), "0,3,4,3");
10         saveCharaEditButton.addActionListener(new saveEditToFloodCharacterValueListener());//添加监听
11         return rightPanel;
12     }
 1     class saveEditToFloodCharacterValueListener implements ActionListener{
 2 
 3         @Override
 4         public void actionPerformed(ActionEvent e) {
 5             // TODO Auto-generated method stub
 6             FloodCharacterValue floodCharacterValue = http://www.mamicode.com/new FloodCharacterValue();            
 7             floodCharacterValue =http://www.mamicode.com/ FloodCharacterValue.transFldPropToFloodCharacterValue(editCharaFldprop);
 8             m_doc.m_floodExtractCharacterValue =http://www.mamicode.com/ floodCharacterValue;
 9         }
10     }

 

Java开发小结:用得比较顺手的事件监听