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

📄 previewcanvas.java

📁 java中的开源控件
💻 JAVA
字号:
package com.sunking.swing.print;

/**
 * <p>Title: OpenSwing</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author <a href="mailto:sunkingxie@hotmail.com">SunKing</a>
 * @version 1.0
 */

import java.awt.*;
import java.awt.geom.*;
import java.awt.print.*;
import javax.swing.*;

public class PreviewCanvas
    extends JPanel {
    Book book;
    int currentPage = 0;
    public PreviewCanvas(Book b, int pageNumber) {
        book = b;
        currentPage = pageNumber;
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        PageFormat pageFormat = book.getPageFormat(currentPage);
        double px = pageFormat.getWidth(),
            py = pageFormat.getHeight(),
            sx = getWidth() - 1,
            sy = getHeight() - 1,
            scale = sy / py,
            xoff = 0.5 * (sx - scale * px),
            yoff = 0;
        g2.translate( (float) xoff, (float) yoff);
        g2.scale( (float) scale, (float) scale);
        Rectangle2D page = new Rectangle2D.Double(0, 0, px, py);
        g2.setPaint(Color.white);
        g2.fill(page);
        Printable printable = book.getPrintable(currentPage);
        try {
            printable.print(g2, pageFormat, currentPage);
        }
        catch (PrinterException eee) {
            g2.draw(new Line2D.Double(0, 0, px, py));
            g2.draw(new Line2D.Double(0, px, 0, py));
        }
    }

    /*public int filpPage(int by)
         {
        int newPage=currentPage+by;
        if (0<=newPage&&newPage<book.getNumberOfPages())
        {
            currentPage=newPage;
            repaint();
        }
        return currentPage;
         }*/
}

⌨️ 快捷键说明

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