zoomlevel.java

来自「Java生成PDF Java生成PDF Java生成PDF」· Java 代码 · 共 62 行

JAVA
62
字号
// $Id: ZoomLevel.java,v 1.8 2007/11/05 14:54:57 mike Exp $package org.faceless.pdf2.viewer2.feature;import org.faceless.pdf2.viewer2.*;import org.faceless.pdf2.*;import javax.swing.*;import java.awt.event.*;/** * Create a widget which displays the current zoom level, and allows the user to * edit it to set the zoom level. * The name of this feature is "ZoomLevel". * <p><i>This code is copyright the Big Faceless Organization. You're welcome to use, modify and distribute it in any form in your own projects, provided those projects continue to make use of the Big Faceless PDF library.</i></p> * @since 2.8 */public class ZoomLevel extends ViewerWidget implements DocumentPanelListener{    private JComboBox zoomlevel;    public ZoomLevel() {        super("ZoomLevel");        zoomlevel = new JComboBox(new String[] { "15%", "25%", "50%", "75%", "100%", "125%", "150%", "200%", "400%", "800%", "1600%", "2400%", "3200%", "6400%"});        zoomlevel.setSelectedItem("100%");        zoomlevel.setEditable(true);        zoomlevel.setPrototypeDisplayValue("100%");        if (zoomlevel.getEditor().getEditorComponent() instanceof JTextField) {            ((JTextField)zoomlevel.getEditor().getEditorComponent()).setColumns(4);        }        zoomlevel.setToolTipText(SuperJOptionPane.getLocalizedString("tt.ZoomLevel"));        zoomlevel.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent event) {                if (zoomlevel.getSelectedItem()!=null) {                    PDFViewer viewer = getViewer();                    float curzoom = viewer.getActiveDocumentPanel().getZoom();                    String s = (String)zoomlevel.getSelectedItem();                    try {                        if (s.endsWith("%")) s = s.substring(0, s.length()-1);                        viewer.getActiveDocumentPanel().setZoom(Float.parseFloat(s)/100f);                    } catch (Exception e) {                        zoomlevel.setSelectedItem(Integer.toString((int)Math.round(curzoom*100))+"%");                    }                    viewer.getActiveDocumentPanel().getViewport().requestFocusInWindow();                }            }        });        setComponent("Navigation", zoomlevel);    }    public void initialize(PDFViewer viewer) {        super.initialize(viewer);        viewer.addDocumentPanelListener(this);    }    public void documentUpdated(DocumentPanelEvent event) {        if (event.getType()=="redrawn" || event.getType()=="activated") {            zoomlevel.setSelectedItem(Integer.toString((int)Math.round(event.getDocumentPanel().getZoom()*100))+"%");        }    }}

⌨️ 快捷键说明

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