<div style="text-indent: 2em; font-size: larger;">
在 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(); } }