Java 打印编程一例

在 Eclispe 环境中,新建一个Java项目,命名为Print,再添加两个类,分别为 MyFrame.java 和 Example.java,代码如下:

MyFrame.java:

import java.awt.*;
import java.awt.event.*;

public class MyFrame extends Frame implements ActionListener {
	// 声明一个 PrintJob 对象。
	PrintJob p = null;
	Graphics g = null;
	TextArea text = new TextArea(10, 10);
	Button 打印文本框 = new Button("打印文本框"), 
			打印窗口 = new Button("打印窗口"),
			打印按钮 = new Button("打印按钮");
	
	MyFrame() {
		super("在应用程序中打印");
		打印文本框.addActionListener(this);
		打印窗口.addActionListener(this);
		打印按钮.addActionListener(this);
		add(text, "Center");
		Panel panel = new Panel();
		panel.add(打印文本框);
		panel.add(打印窗口);
		panel.add(打印按钮);
		add(panel, "South");
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
	
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == 打印文本框) {
			// 创建一个 PrintJob 对象 p
			p = getToolkit().getPrintJob(this, "ok", null);
			// p 获取一个用于打印用于打印的 Graphics 对象。
			g = p.getGraphics();
			g.translate(120, 120);
			text.printAll(g);
			// 释放对象 g
			g.dispose();
			p.end();
		} else if (e.getSource() == 打印窗口) {
			p = getToolkit().getPrintJob(this, "ok", null);
			
			// p 获取一个用于打印的 Graphics 对象
			g = p.getGraphics();
			g.translate(120, 120);
			// 打印当前窗口及其子组件
			this.printAll(g);
			// 释放对象 g
			g.dispose();
			p.end();
		} else if (e.getSource() == 打印按钮) {
			p = getToolkit().getPrintJob(this, "ok", null);
			g = p.getGraphics();
			g.translate(120, 120);
			打印文本框.printAll(g);
			g.translate(78, 0);
			打印窗口.printAll(g);
			g.translate(66, 0);
			打印按钮.printAll(g);
			g.dispose();
			p.end();
		}
	}
}

Example.java:

import java.awt.*;
import java.awt.event.*;

public class Example {
	public static void main(String args[]) {
		MyFrame f = new MyFrame();
		f.setBounds(70, 70, 70, 89);
		f.setVisible(true);
		f.pack();
	}
}

Add comment

Loading