请运行如下代码!
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.event.*;import java.io.*;import java.awt.Dimension;
import java.awt.event.*;import java.awt.print.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import javax.print.event.*;
/**
 * @author H.P.Wang
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class PrintTxt extends JFrame implements ActionListener{ private JFrame frame = null;
private JButton buttonPrint = null;

public PrintTxt(){

//frame = new JFrame("javaPrint");
this.setTitle("javaPrint");
buttonPrint = new JButton("print");
this.getContentPane().add(buttonPrint);
buttonPrint.addActionListener(this);
this.setSize(new Dimension(300,400));
this.show(true);
}
public static void main(String[] args) {
PrintTxt pt = new PrintTxt();
}
/* (non-Javadoc)
 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
 */
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
printFileAction();
}

/*???????*/
private void printFileAction()
{
// ?????????????????
// JFileChooser fileChooser = new JFileChooser(SystemProperties.USER_DIR);
JFileChooser fileChooser = new JFileChooser();
    int state = fileChooser.showOpenDialog(this);//?????????
    if (state == fileChooser.APPROVE_OPTION)//?????????
    {
     File file = fileChooser.getSelectedFile();//???????
//?????????
        PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
//?????????????????????AUTOSENSE
        DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
//???????????
        PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
//?????????
        PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
        //???????
        PrintService service = ServiceUI.printDialog(null, 200, 200, printService
                                           , defaultService, flavor, pras);
System.out.println(service.toString());
        if (service != null)
        {
         try
            {
             DocPrintJob job = service.createPrintJob();//??????
                FileInputStream fis = new FileInputStream(file);//?????????
                System.out.println(file);
                DocAttributeSet das = new HashDocAttributeSet();
                Doc doc = new SimpleDoc(fis, flavor, das);//????????
                job.print(doc, pras);//???????
                System.out.println("=====end!=====");
            }
            catch(Exception e)
            {
             e.printStackTrace();
            }
        }
    }
}}