zoukankan      html  css  js  c++  java
  • java event

    What is an Event?
    Change in the state of an object is known as event i.e. event describes the change in state of source. Events are generated as result of user interaction with the graphical user interface components. For example, clicking on a button, moving the mouse, entering a character through keyboard,selecting an item from list, scrolling the page are the activities that causes an event to happen.
    
    Types of Event
    The events can be broadly classified into two categories:
    
    Foreground Events - Those events which require the direct interaction of user.They are generated as consequences of a person interacting with the graphical components in Graphical User Interface. For example, clicking on a button, moving the mouse, entering a character through keyboard,selecting an item from list, scrolling the page etc.
    
    Background Events - Those events that require the interaction of end user are known as background events. Operating system interrupts, hardware or software failure, timer expires, an operation completion are the example of background events.
    
    What is Event Handling?
    Event Handling is the mechanism that controls the event and decides what should happen if an event occurs. This mechanism have the code which is known as event handler that is executed when an event occurs. Java Uses the Delegation Event Model to handle the events. This model defines the standard mechanism to generate and handle the events.Let's have a brief introduction to this model.
    
    The Delegation Event Model has the following key participants namely:
    
    Source - The source is an object on which event occurs. Source is responsible for providing information of the occurred event to it's handler. Java provide as with classes for source object.
    
    Listener - It is also known as event handler.Listener is responsible for generating response to an event. From java implementation point of view the listener is also an object. Listener waits until it receives an event. Once the event is received , the listener process the event an then returns.
    
    The benefit of this approach is that the user interface logic is completely separated from the logic that generates the event. The user interface element is able to delegate the processing of an event to the separate piece of code. In this model ,Listener needs to be registered with the source object so that the listener can receive the event notification. This is an efficient way of handling the event because the event notifications are sent only to those listener that want to receive them.
    
    Steps involved in event handling
    The User clicks the button and the event is generated.
    
    Now the object of concerned event class is created automatically and information about the source and the event get populated with in same object.
    
    Event object is forwarded to the method of registered listener class.
    
    the method is now get executed and returns.
    
    Points to remember about listener
    In order to design a listener class we have to develop some listener interfaces.These Listener interfaces forecast some public abstract callback methods which must be implemented by the listener class.
    
    If you do not implement the any if the predefined interfaces then your class can not act as a listener class for a source object.
    
    Callback Methods
    These are the methods that are provided by API provider and are defined by the application programmer and invoked by the application developer. Here the callback methods represents an event method. In response to an event java jre will fire callback method. All such callback methods are provided in listener interfaces.
    
    If a component wants some listener will listen to it's events the the source must register itself to the listener.

    example

     1 SwingControlDemo.java
     2 package com.tutorialspoint.gui;
     3 
     4 import java.awt.*;
     5 import java.awt.event.*;
     6 import javax.swing.*;
     7 
     8 public class SwingControlDemo {
     9 
    10    private JFrame mainFrame;
    11    private JLabel headerLabel;
    12    private JLabel statusLabel;
    13    private JPanel controlPanel;
    14 
    15    public SwingControlDemo(){
    16       prepareGUI();
    17    }
    18 
    19    public static void main(String[] args){
    20       SwingControlDemo swingControlDemo = new SwingControlDemo();  
    21       swingControlDemo.showEventDemo();       
    22    }
    23       
    24    private void prepareGUI(){
    25       mainFrame = new JFrame("Java SWING Examples");
    26       mainFrame.setSize(400,400);
    27       mainFrame.setLayout(new GridLayout(3, 1));
    28 
    29       headerLabel = new JLabel("",JLabel.CENTER );
    30       statusLabel = new JLabel("",JLabel.CENTER);        
    31 
    32       statusLabel.setSize(350,100);
    33       mainFrame.addWindowListener(new WindowAdapter() {
    34          public void windowClosing(WindowEvent windowEvent){
    35             System.exit(0);
    36          }        
    37       });    
    38       controlPanel = new JPanel();
    39       controlPanel.setLayout(new FlowLayout());
    40 
    41       mainFrame.add(headerLabel);
    42       mainFrame.add(controlPanel);
    43       mainFrame.add(statusLabel);
    44       mainFrame.setVisible(true);  
    45    }
    46 
    47    private void showEventDemo(){
    48       headerLabel.setText("Control in action: Button"); 
    49 
    50       JButton okButton = new JButton("OK");
    51       JButton submitButton = new JButton("Submit");
    52       JButton cancelButton = new JButton("Cancel");
    53 
    54       okButton.setActionCommand("OK");
    55       submitButton.setActionCommand("Submit");
    56       cancelButton.setActionCommand("Cancel");
    57 
    58       okButton.addActionListener(new ButtonClickListener()); 
    59       submitButton.addActionListener(new ButtonClickListener()); 
    60       cancelButton.addActionListener(new ButtonClickListener()); 
    61 
    62       controlPanel.add(okButton);
    63       controlPanel.add(submitButton);
    64       controlPanel.add(cancelButton);       
    65 
    66       mainFrame.setVisible(true);  
    67    }
    68 
    69    private class ButtonClickListener implements ActionListener{
    70       public void actionPerformed(ActionEvent e) {
    71          String command = e.getActionCommand();  
    72          if( command.equals( "OK" ))  {
    73             statusLabel.setText("Ok Button clicked.");
    74          }
    75          else if( command.equals( "Submit" ) )  {
    76             statusLabel.setText("Submit Button clicked."); 
    77          }
    78          else  {
    79             statusLabel.setText("Cancel Button clicked.");
    80          }      
    81       }        
    82    }
    83 }
  • 相关阅读:
    判断字符串是否为数字
    Javascript to validate HKID number
    ServiceNow 中Reference 的 dynamic creation script
    Dynamic CRM 中修改实体中主字段的长度
    字符串的压缩与解压
    JDBC中重要的类/接口-Connection、DriverManager、ResultSet、Statement及常用方法
    java读取指定package下的所有class
    mybatis由JDBC的演化过程分析
    Java类与对象初始化的过程(一道经典的面试题)
    StringBuffer和StringBuilder区别?
  • 原文地址:https://www.cnblogs.com/rojas/p/5274790.html
Copyright © 2011-2022 走看看