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

📄 printdialog.java

📁 有打开文件、保存文件、自动换行、复制、剪切、设置字体等功能
💻 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 + -