📄 printpreviewcanvas.java
字号:
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.print.*;
import javax.swing.*;
public class printPreviewCanvas extends JPanel
{
Book book;
int CurrentPage=0;
public printPreviewCanvas(Book b)
{
book=b;
}
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 + -