事件驱动架构的一个例子?

时间:2015-03-21 13:19:24

标签: java

有人能给我一个事件驱动架构的例子,一个理解它的简单架构,我有一个需要实现事件驱动架构的项目。

3 个答案:

答案 0 :(得分:1)

最简单的方法可能是使用Swing或其他GUI工具包。

Swing正在实施事件驱动架构,因为与用户的每次交互都被建模为事件,您必须为特定类型的事件注册事件处理程序。例如。 ActionListener收听用户按下按钮时发生的事件。

答案 1 :(得分:0)

更改对象的状态称为事件。事件包括鼠标单击,鼠标移动,单击按钮,选择单选复选框等。 Here's您需要了解的所有信息和方法。 举一个简单的例子,这是一个使用监听器的AWT(Java的GUI工具包)程序

import java.awt.*;  
import java.awt.event.*;  

class AEvent extends Frame implements ActionListener{  
TextField tf;  
AEvent(){       
    tf=new TextField();  
    tf.setBounds(60,50,170,20);  

    Button b=new Button("click me");  
    b.setBounds(100,120,80,30);  

    b.addActionListener(this);  

    add(b);add(tf);  

    setSize(300,300);  
    setLayout(null);  
    setVisible(true);     
}    
public void actionPerformed(ActionEvent e){  
    tf.setText("Welcome");  
}      
public static void main(String args[]){  
    new AEvent();  
}  
}  

答案 2 :(得分:0)

JSF还有一个事件驱动的结构。

控制器(处理用户活动)应该通过事件进行通信。这意味着Controller发布事件,并且将通知订阅此事件的每个其他Controller,从而可以执行某些操作。

以下示例使用googleEventBus发布和订阅事件。

// Controller which handles the action if an item is deleted:
public class DeleteItemController {

    @Autowired
    private EventBus eventBus;

    public void deleteShow(MyItem item) {
        // some action here calling a service...
        eventBus.post(new ItemDeletedEvent(show));
    }
}

// controller used to control all items
public class ItemListController {

    @Subscribe
    public void showDeleted(ItemDeletedEvent event) {
        MyItem item = event.getDeletedItem();
        // do some action
    }
}