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

📄 applicationmirrortest.java

📁 《SWING HACKS》源码 作者: Joshua Marinacci,Chris Adamson 著 徐晔 译 出版: 2007年2月
💻 JAVA
字号:
import java.awt.*;import java.util.*;import javax.swing.*;import java.awt.event.*;import java.net.*;import java.io.*;public class ApplicationMirrorTest {    Map component_map;    public ApplicationMirrorTest() {        component_map = new ComponentMap();                JFrame frame = new JFrame();        frame.getContentPane().setLayout(new FlowLayout());                final JButton button = new JButton("action generator");        button.setName("button");        frame.getContentPane().add(button);                JTextField tf = new JTextField("text field");        tf.setName("textfield");        frame.getContentPane().add(tf);                frame.pack();        frame.show();    }        public void openSender(Socket sock) throws Exception {        final ObjectOutputStream out = new ObjectOutputStream(sock.getOutputStream());                    Toolkit.getDefaultToolkit().addAWTEventListener(            new AWTEventListener() {                public void eventDispatched(AWTEvent evt) {                    try {                        if(evt instanceof MouseEvent) {                            MouseEvent me = (MouseEvent)evt;                            out.writeObject(me.getComponent().getName());                            out.writeObject(evt);                        }                    } catch (Exception ex) { }                }            },            AWTEvent.ACTION_EVENT_MASK |             AWTEvent.MOUSE_EVENT_MASK        );    }        public void openReceiver() throws Exception  {        // receive events        System.out.println("couldn't open socket. must be the server");        ServerSocket server = new ServerSocket(6754);        Socket sock = server.accept();                EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue();                ObjectInputStream in = new ObjectInputStream(sock.getInputStream());        while(true ) {            String id = (String) in.readObject();            AWTEvent evt = (AWTEvent) in.readObject();            if(evt instanceof MouseEvent) {                MouseEvent me = (MouseEvent)evt;                MouseEvent me2 = new MouseEvent(                    (Component)component_map.get(id),                    me.getID(),                    me.getWhen(),                    me.getModifiers(),                    me.getX(),                    me.getY(),                    me.getClickCount(),                    me.isPopupTrigger(),                    me.getButton()                    );                eq.postEvent(me2);            }        }    }        public void start() {        try {            // send events            final Socket sock = new Socket("localhost",6754);            openSender(sock);        } catch (Exception ex) {            try {                openReceiver();            } catch (Exception ex2) {                System.out.println("exception: " + ex);            }        }    }    public static void main(String[] args) throws Exception {        ApplicationMirrorTest mirror = new ApplicationMirrorTest();        mirror.start();            }        public static void p(String str) {        System.out.println(str);    }}

⌨️ 快捷键说明

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