mouselistenertrigger.java

来自「用java 实现屏幕取词技术」· Java 代码 · 共 72 行

JAVA
72
字号
/* * MyClass.java * * Created on 2007-4-2, 23:23:46 * * To change this template, choose Tools | Templates * and open the template in the editor. */package dyno.swing.beans;import java.awt.AWTEvent;import java.awt.Component;import java.awt.Container;import java.awt.Window;import java.awt.event.AWTEventListener;import java.awt.event.MouseEvent;import java.util.ArrayList;import javax.swing.JComponent;import javax.swing.RootPaneContainer;import javax.swing.SwingUtilities;/** * * @author rehte */public class MouseListenerTrigger implements AWTEventListener {    private ArrayList<Window> windows = new ArrayList<Window>();    public MouseListenerTrigger() {    }    private void addMouseListener(Container container) {        if (container instanceof JComponent) {            JComponent jc = (JComponent) container;            WordPicker picker = new WordPicker(jc);            container.addMouseMotionListener(picker);        }        int count = container.getComponentCount();        for (int i = 0; i < count; i++) {            Component child = container.getComponent(i);            if (child instanceof Container) {                addMouseListener((java.awt.Container) child);            }        }    }    public void eventDispatched(AWTEvent event) {        if (event instanceof MouseEvent) {            Object src = event.getSource();            if (src != null && src instanceof Component) {                Component component = (Component) src;                Window window = null;                if (component instanceof Window) {                    window = (Window) component;                } else {                    window = SwingUtilities.getWindowAncestor(component);                }                if (window != null && !windows.contains(window)) {                    if (window instanceof RootPaneContainer) {                        addMouseListener(((RootPaneContainer) window).getContentPane());                    } else {                        addMouseListener(window);                    }                    windows.add(window);                }            }        }    }}

⌨️ 快捷键说明

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