📄 printdialog.java
字号:
package mypack;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.print.*;
import java.io.*;
public class PrintDialog extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 4437518338292139722L;
PrinterJob printerJob;
int m=3,n,p=1,i=1;
JLabel label;
JButton buttonPrint;
JTextArea text;
CharArrayWriter out;
CharArrayReader in;
BufferedReader readIn;
Container con;
private Printable pageFormat;
PrintDialog(String s)
{
super(s);
setBounds(120,120,360,200);
setVisible(true);
buttonPrint=new JButton("打印第"+i+"页");
buttonPrint.addActionListener(this);
label=new JLabel("单击按钮开始打印第"+i+"页");
text=new JTextArea();
con=getContentPane();
JPanel panel=new JPanel(new GridLayout(1,2));
panel.add(label);
panel.add(buttonPrint);
con.add(new JScrollPane(text),BorderLayout.CENTER);
con.add(panel,BorderLayout.SOUTH);
validate();
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
// TODO 自动生成方法存根
try
{
label.setText("正在打印第"+i+"页");
if(i==1)
{
out=new CharArrayWriter();
char message[]=text.getText().toCharArray();
out.write(message); //将文本区内容写入内存
m=text.getLineCount();
p=(m%n==0)?(m/n):(m/n+1);
in=new CharArrayReader(out.toCharArray());
readIn=new BufferedReader(in);
}
if(i<=p)
{
printerJob=PrinterJob.getPrinterJob();
PageFormat pageFormat=printerJob.pageDialog(printerJob.defaultPage());
text.setText(null);
String str=null;
int number=1;
text.append("这是第"+i+"页\n\n");
while((number<=n)&&(str=readIn.readLine())!=null)
{
text.append(str+"\n");
number++;
}
boolean boo=printerJob.printDialog();
if(boo==true)
{
printerJob.setPrintable((Printable) this,pageFormat); //?????
printerJob.print();
i++;
buttonPrint.setText("打印下一页");
}
}
else
{
label.setText("打印完成,要继续吗?");
i=1;
buttonPrint.setText("这是第"+i+"页");
in=new CharArrayReader(out.toCharArray());
readIn=new BufferedReader(in);
String str=null;
text.setText(null);
while((str=readIn.readLine())!=null)
{
text.append(str+"\n");
}
out.close();
in.close();
readIn.close();
}
}
catch(Exception ee){}
}
public int Print(Graphics graphics,PageFormat pagefomat,int pageIndex)
{
if(pageIndex==0)
{
graphics.translate(80,80);
text.paintAll(graphics);
return Printable.PAGE_EXISTS; //通知打印机准备打印该页
}
else
{
return Printable.NO_SUCH_PAGE; //打印布置结束
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -