⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eventsourcetest.java

📁 Java核心技术 卷一 的配套源代码!!绝对全
💻 JAVA
字号:
/**
   @version 1.31 2004-05-03
   @author Cay Horstmann
*/

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

public class EventSourceTest
{  
   public static void main(String[] args)
   {  
      EventSourceFrame frame = new EventSourceFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setVisible(true);
   }
}

/**
   A frame that contains a panel with drawings
*/
class EventSourceFrame extends JFrame
{
   public EventSourceFrame()
   {
      setTitle("EventSourceTest");
      setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

      // add panel to frame

      final PaintCountPanel panel = new PaintCountPanel();
      add(panel);

      panel.addPropertyChangeListener(new
         PropertyChangeListener()
         {
            public void propertyChange(PropertyChangeEvent event)
            {               
               setTitle("EventSourceTest - " + event.getNewValue());
            }
         });
   }

   public static final int DEFAULT_WIDTH = 400;
   public static final int DEFAULT_HEIGHT = 200;  
}

/**
   A panel that counts how often it is painted. 
*/
class PaintCountPanel extends JPanel
{  
   public void paintComponent(Graphics g)
   {  
      int oldPaintCount = paintCount;
      paintCount++;
      firePropertyChangeEvent(new PropertyChangeEvent(this, 
         "paintCount", oldPaintCount, paintCount));
      super.paintComponent(g);
   }

   /**
      Adds a change listener
      @param listener the listener to add
   */
   public void addPropertyChangeListener(PropertyChangeListener listener)
   {  
      listenerList.add(PropertyChangeListener.class, listener);
   }

   /**
      Removes a change listener
      @param listener the listener to remove
   */
   public void removePropertyChangeListener(PropertyChangeListener listener)
   {  
      listenerList.remove(PropertyChangeListener.class, listener);
   }

   public void firePropertyChangeEvent(PropertyChangeEvent event)
   {  
      EventListener[] listeners = listenerList.getListeners(PropertyChangeListener.class);
      for (EventListener l  listeners)
         ((PropertyChangeListener) l).propertyChange(event);
   }

   public int getPaintCount()
   {
      return paintCount;
   }

   private int paintCount;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -