dispatchEvent(AWTEvent) 分派事件

点一个按钮,显示的分派一个指定的事件给系统。

下面是一个例子,当点击close按钮时,分派一个new WindowEvent(this,WindowEvent.WINDOW_CLOSING)事件给系统,以关闭整个窗口。

/*

通过dispatchEvent(WindowEvent)来显示关闭窗口

*/

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class FrameTest extends JFrame implements ActionListener
{
  private JButton close;
  
  public FrameTest()
  {
    super("关闭窗口");
    
    Container c=getContentPane();
    c.setLayout(new FlowLayout());
    
    close=new JButton("关闭");
    close.addActionListener(this);
    
    this.add(close);
    
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    setSize(500,300);
    setVisible(true);
  }
  
  public void actionPerformed(ActionEvent e)
  {
    Object obj=e.getSource();
    if(obj==close)
    {
      WindowEvent event=new WindowEvent(this,WindowEvent.WINDOW_CLOSING);
      
      //下面两种方式都可以
      this.dispatchEvent(event);
      
      //Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
    }
  }
  
  public static void main(String[] args)
  {
    new FrameTest();
  }
}
原文地址:https://www.cnblogs.com/personnel/p/4582769.html