<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FEvent%2FCustomized_Event</id>
		<title>Java/Event/Customized Event - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FEvent%2FCustomized_Event"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Event/Customized_Event&amp;action=history"/>
		<updated>2026-04-22T07:21:36Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Event/Customized_Event&amp;diff=5762&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Event/Customized_Event&amp;diff=5762&amp;oldid=prev"/>
				<updated>2010-06-01T05:58:19Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:58, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Event/Customized_Event&amp;diff=5761&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Event/Customized_Event&amp;diff=5761&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== ActionMap javax.swing.JComponent.getActionMap() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import javax.swing.AbstractAction;&lt;br /&gt;
import javax.swing.Action;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton component = new JButton();&lt;br /&gt;
    MyAction action = new MyAction();&lt;br /&gt;
    component.getActionMap().put(action.getValue(Action.NAME), action);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyAction extends AbstractAction {&lt;br /&gt;
  public MyAction() {&lt;br /&gt;
    super(&amp;quot;my action&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void actionPerformed(ActionEvent e) {&lt;br /&gt;
    System.out.println(&amp;quot;hi&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating a Custom Event ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
import java.util.EventListener;&lt;br /&gt;
import java.util.EventObject;&lt;br /&gt;
import javax.swing.event.EventListenerList;&lt;br /&gt;
class MyEvent extends EventObject {&lt;br /&gt;
  public MyEvent(Object source) {&lt;br /&gt;
    super(source);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
interface MyEventListener extends EventListener {&lt;br /&gt;
  public void myEventOccurred(MyEvent evt);&lt;br /&gt;
}&lt;br /&gt;
class MyClass {&lt;br /&gt;
  protected EventListenerList listenerList = new EventListenerList();&lt;br /&gt;
  public void addMyEventListener(MyEventListener listener) {&lt;br /&gt;
    listenerList.add(MyEventListener.class, listener);&lt;br /&gt;
  }&lt;br /&gt;
  public void removeMyEventListener(MyEventListener listener) {&lt;br /&gt;
    listenerList.remove(MyEventListener.class, listener);&lt;br /&gt;
  }&lt;br /&gt;
  void fireMyEvent(MyEvent evt) {&lt;br /&gt;
    Object[] listeners = listenerList.getListenerList();&lt;br /&gt;
    for (int i = 0; i &amp;lt; listeners.length; i = i+2) {&lt;br /&gt;
      if (listeners[i] == MyEventListener.class) {&lt;br /&gt;
        ((MyEventListener) listeners[i+1]).myEventOccurred(evt);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    MyClass c = new MyClass();&lt;br /&gt;
    c.addMyEventListener(new MyEventListener() {&lt;br /&gt;
      public void myEventOccurred(MyEvent evt) {&lt;br /&gt;
        System.out.println(&amp;quot;fired&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Customized Event  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.AWTEvent;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.EventQueue;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import java.util.EventListener;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JProgressBar;&lt;br /&gt;
public class CustomEventPanel extends JPanel implements TimerListener {&lt;br /&gt;
  private int currentValue = 10;&lt;br /&gt;
    JProgressBar bar = new JProgressBar(1,100);&lt;br /&gt;
  public CustomEventPanel() {&lt;br /&gt;
    TimerComponent t = new TimerComponent(1000);&lt;br /&gt;
    t.addTimerListener(this);&lt;br /&gt;
    add(bar);&lt;br /&gt;
  }&lt;br /&gt;
  public void timeElapsed(TimerEvent evt) {&lt;br /&gt;
    currentValue += 10;&lt;br /&gt;
    bar.setValue(currentValue);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.setTitle(&amp;quot;Customized Event&amp;quot;);&lt;br /&gt;
    frame.setSize(300, 80);&lt;br /&gt;
    frame.addWindowListener(new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    Container contentPane = frame.getContentPane();&lt;br /&gt;
    contentPane.add(new CustomEventPanel());&lt;br /&gt;
    frame.show();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
interface TimerListener extends EventListener {&lt;br /&gt;
  public void timeElapsed(TimerEvent evt);&lt;br /&gt;
}&lt;br /&gt;
class TimerComponent extends Component implements Runnable {&lt;br /&gt;
  private int interval;&lt;br /&gt;
  private TimerListener listener;&lt;br /&gt;
  private static EventQueue evtq;&lt;br /&gt;
  public TimerComponent(int i) {&lt;br /&gt;
    interval = i;&lt;br /&gt;
    Thread t = new Thread(this);&lt;br /&gt;
    t.start();&lt;br /&gt;
    evtq = Toolkit.getDefaultToolkit().getSystemEventQueue();&lt;br /&gt;
    enableEvents(0);&lt;br /&gt;
  }&lt;br /&gt;
  public void addTimerListener(TimerListener l) {&lt;br /&gt;
    listener = l;&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    while (true) {&lt;br /&gt;
      try {&lt;br /&gt;
        Thread.sleep(interval);&lt;br /&gt;
      } catch (InterruptedException e) {&lt;br /&gt;
      }&lt;br /&gt;
      TimerEvent te = new TimerEvent(this);&lt;br /&gt;
      evtq.postEvent(te);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void processEvent(AWTEvent evt) {&lt;br /&gt;
    if (evt instanceof TimerEvent) {&lt;br /&gt;
      if (listener != null)&lt;br /&gt;
        listener.timeElapsed((TimerEvent) evt);&lt;br /&gt;
    } else&lt;br /&gt;
      super.processEvent(evt);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class TimerEvent extends AWTEvent {&lt;br /&gt;
  public static final int TIMER_EVENT = AWTEvent.RESERVED_ID_MAX + 5555;&lt;br /&gt;
  public TimerEvent(TimerComponent t) {&lt;br /&gt;
    super(t, TIMER_EVENT);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== implements AWTEventListener ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.AWTEvent;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import java.awt.event.AWTEventListener;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ruponentEvent;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import javax.swing.AbstractAction;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
public class Main implements AWTEventListener {&lt;br /&gt;
  public void eventDispatched(AWTEvent evt) {&lt;br /&gt;
    if (evt.getID() == WindowEvent.WINDOW_OPENED) {&lt;br /&gt;
      ComponentEvent cev = (ComponentEvent) evt;&lt;br /&gt;
      if (cev.getComponent() instanceof JFrame) {&lt;br /&gt;
        System.out.println(&amp;quot;event: &amp;quot; + evt);&lt;br /&gt;
        JFrame frame = (JFrame) cev.getComponent();&lt;br /&gt;
        loadSettings(frame);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void loadSettings(JFrame frame) {&lt;br /&gt;
    System.out.println(&amp;quot;loading&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public static void saveSettings() {&lt;br /&gt;
    System.out.println(&amp;quot;saving&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    Toolkit tk = Toolkit.getDefaultToolkit();&lt;br /&gt;
    final Main main = new Main();&lt;br /&gt;
    tk.addAWTEventListener(main, AWTEvent.WINDOW_EVENT_MASK);&lt;br /&gt;
    final JFrame frame = new JFrame(&amp;quot;&amp;quot;);&lt;br /&gt;
    frame.setName(&amp;quot;your frame&amp;quot;);&lt;br /&gt;
    JMenuBar mb = new JMenuBar();&lt;br /&gt;
    JMenu menu = new JMenu(&amp;quot;File&amp;quot;);&lt;br /&gt;
    menu.add(new AbstractAction(&amp;quot;Quit&amp;quot;) {&lt;br /&gt;
      public void actionPerformed(ActionEvent evt) {&lt;br /&gt;
        try {&lt;br /&gt;
          main.saveSettings();&lt;br /&gt;
          System.exit(0);&lt;br /&gt;
        } catch (Exception ex) {&lt;br /&gt;
          System.out.println(ex);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    mb.add(menu);&lt;br /&gt;
    frame.setJMenuBar(mb);&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== int java.awt.AWTEvent.getID() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.AWTEvent;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import java.awt.event.AWTEventListener;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ruponentEvent;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import javax.swing.AbstractAction;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
public class Main implements AWTEventListener {&lt;br /&gt;
  public void eventDispatched(AWTEvent evt) {&lt;br /&gt;
    if (evt.getID() == WindowEvent.WINDOW_OPENED) {&lt;br /&gt;
      ComponentEvent cev = (ComponentEvent) evt;&lt;br /&gt;
      if (cev.getComponent() instanceof JFrame) {&lt;br /&gt;
        System.out.println(&amp;quot;event: &amp;quot; + evt);&lt;br /&gt;
        JFrame frame = (JFrame) cev.getComponent();&lt;br /&gt;
        loadSettings(frame);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void loadSettings(JFrame frame) {&lt;br /&gt;
    System.out.println(&amp;quot;loading&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public static void saveSettings() {&lt;br /&gt;
    System.out.println(&amp;quot;saving&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    Toolkit tk = Toolkit.getDefaultToolkit();&lt;br /&gt;
    final Main main = new Main();&lt;br /&gt;
    tk.addAWTEventListener(main, AWTEvent.WINDOW_EVENT_MASK);&lt;br /&gt;
    final JFrame frame = new JFrame(&amp;quot;&amp;quot;);&lt;br /&gt;
    frame.setName(&amp;quot;your frame&amp;quot;);&lt;br /&gt;
    JMenuBar mb = new JMenuBar();&lt;br /&gt;
    JMenu menu = new JMenu(&amp;quot;File&amp;quot;);&lt;br /&gt;
    menu.add(new AbstractAction(&amp;quot;Quit&amp;quot;) {&lt;br /&gt;
      public void actionPerformed(ActionEvent evt) {&lt;br /&gt;
        try {&lt;br /&gt;
          main.saveSettings();&lt;br /&gt;
          System.exit(0);&lt;br /&gt;
        } catch (Exception ex) {&lt;br /&gt;
          System.out.println(ex);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    mb.add(menu);&lt;br /&gt;
    frame.setJMenuBar(mb);&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Removing listeners: remove the registered listeners. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.ItemEvent;&lt;br /&gt;
import java.awt.event.ItemListener;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class RemoveListener {&lt;br /&gt;
  class ButtonListener implements ActionListener {&lt;br /&gt;
    public void actionPerformed(ActionEvent e) {&lt;br /&gt;
      System.out.println(++count);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  JButton add = new JButton(&amp;quot;+&amp;quot;);&lt;br /&gt;
  JCheckBox active = new JCheckBox(&amp;quot;Active listener&amp;quot;);&lt;br /&gt;
  ButtonListener buttonlistener = new ButtonListener();&lt;br /&gt;
  int count = 0;&lt;br /&gt;
  public RemoveListener() {&lt;br /&gt;
    JPanel panel = new JPanel();&lt;br /&gt;
    active.addItemListener(new ItemListener() {&lt;br /&gt;
      public void itemStateChanged(ItemEvent event) {&lt;br /&gt;
        if (active.isSelected()) {&lt;br /&gt;
          add.addActionListener(buttonlistener);&lt;br /&gt;
        } else {&lt;br /&gt;
          add.removeActionListener(buttonlistener);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    panel.add(add);&lt;br /&gt;
    panel.add(active);&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(panel);&lt;br /&gt;
    f.setSize(310, 200);&lt;br /&gt;
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new RemoveListener();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>