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

📄 viewsourceaction.java

📁 Delineate is a tool for converting bitmap raster images to SVG (Scalable Vector Graphics) using Auto
💻 JAVA
字号:
/* * ViewSourceAction.java * * Copyright (C) 2003 Robert McKinnon * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */package net.sf.delineate.gui;import org.apache.batik.util.MimeTypeConstants;import org.apache.batik.util.ParsedURL;import org.apache.batik.xml.XMLUtilities;import javax.swing.*;import javax.swing.text.Document;import javax.swing.text.PlainDocument;import java.awt.event.ActionEvent;import java.awt.event.KeyEvent;import java.awt.EventQueue;import java.awt.Event;import java.io.InputStream;import java.io.Reader;/** * To view the source of the current document. */public class ViewSourceAction extends AbstractAction {    private String url;    private int x;    private int y;    private final JFrame frame = new JFrame();    private final JTextArea textArea = new JTextArea();    public ViewSourceAction() {        textArea.setEditable(false);        JScrollPane scrollPane = new JScrollPane();        scrollPane.getViewport().add(textArea);        ImageIcon image = new ImageIcon("img/delineate-icon.png");        frame.setIconImage(image.getImage());        frame.setContentPane(scrollPane);        final String CLOSE_ACTION = "close";        ActionMap actionMap = scrollPane.getActionMap();        actionMap.put(CLOSE_ACTION, new AbstractAction() {            public void actionPerformed(ActionEvent e) {                closeFrame();            }        });        InputMap inputMap = scrollPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);        inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), CLOSE_ACTION);        inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_Q, Event.CTRL_MASK), CLOSE_ACTION);        inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_W, Event.CTRL_MASK), CLOSE_ACTION);    }    public void setSourceUrl(String url) {        this.url = url;    }    public void setLocation(int x, int y) {        this.x = x;        this.y = y;    }    public void closeFrame() {        synchronized(frame) {            if(frame != null) {                frame.setVisible(false);            }        }    }    public void actionPerformed(ActionEvent e) {        if(url == null) {            return;        }        final ParsedURL parsedUrl = new ParsedURL(url);        new Thread() {            public void run() {                char[] buffer = new char[4096];                try {                    InputStream inputStream = parsedUrl.openStream(MimeTypeConstants.MIME_TYPES_SVG);                    Reader reader = XMLUtilities.createXMLDocumentReader(inputStream);                    int length;                    final Document document = new PlainDocument();                    while((length = reader.read(buffer, 0, buffer.length)) != -1) {                        document.insertString(document.getLength(), new String(buffer, 0, length), null);                    }                    reader.close();                    inputStream.close();                    EventQueue.invokeLater(new Runnable() {                        public void run() {                            synchronized(frame) {                                setDocument(document);                            }                        }                    });                } catch(Exception ex) {                    ex.printStackTrace();                }            }        }.start();    }    private void setDocument(final Document document) {        textArea.setDocument(document);        frame.setTitle(url.toString());        frame.setBounds(x, y, 700, 650);        frame.setVisible(true);    }}

⌨️ 快捷键说明

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