请问高手,如何用swing实现打印一个表格?? JDK/DEMO/SWING-SET2/ 点击看看那个jar包看看 慢慢弄里面的代码很详细 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://java.sun.com/developer/onlineTraining/Programming/JDCBook/advprint.html这里看看吧! import java.awt.print.*;import java.awt.*;import javax.print.*;import javax.print.attribute.*;import javax.swing.*;import javax.swing.table.*;class PrintReport implements Printable{ private TableModel table; private String title; public PrintReport(JTable table,String title){ this.table=table.getModel(); this.title=title; PrintService[] services=PrintServiceLookup.lookupPrintServices( DocFlavor.SERVICE_FORMATTED.PRINTABLE,null ); if(services.length<1) new ErrorDialog("No printer available!"); else{ PrintRequestAttributeSet attributes=new HashPrintRequestAttributeSet(); PrintService service=ServiceUI.printDialog(null,50,50,services,services[0],null,attributes); if(service!=null){ DocPrintJob job=service.createPrintJob(); try{ Doc doc=new SimpleDoc(this,DocFlavor.SERVICE_FORMATTED.PRINTABLE,null); job.print(doc,attributes); }catch(PrintException pe){ pe.printStackTrace(); } } } } public int print(Graphics g,PageFormat pf,int pageIndex){ if(pageIndex==0){ Graphics2D g2d=(Graphics2D)g; g2d.translate(pf.getImageableX(),pf.getImageableY()); g2d.setColor(Color.black); g2d.drawString(title,0,20); for(int i=0;i<table.getColumnCount();i++){ g2d.drawString(table.getColumnName(i),i*100,40); } for(int i=0;i<table.getRowCount();i++){ for(int ii=0;ii<table.getColumnCount();ii++){ String cell; Object original=table.getValueAt(i,ii); if(original==null) cell=""; else cell=original.toString(); g2d.drawString(cell,ii*100,60+i*20); } } return Printable.PAGE_EXISTS; }else return Printable.NO_SUCH_PAGE; }} 我MyEclipse那个运行main方法的菜单不见了,谁知道哪里可以设置回来吗? 对象数组,通过对象的多个属性来排序 关于FileDialog的文件过滤问题 关于java插入mysql数据库的问题 几个小问题 数据库的money类型,在java中用哪个数据类型 哪位大虾给小弟说说ResultSet的奥秘? 我该怎么样设置寻找类文件默认目录,可以使我在任何目录下javac,都可以找到我默认目录里的cls? 关于系统变量的问题 一个问题?? 如何实时删除文件? 能把str做为表达式,将其值赋给i吗?
这里看看吧!
import java.awt.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.swing.*;
import javax.swing.table.*;
class PrintReport implements Printable{
private TableModel table;
private String title;
public PrintReport(JTable table,String title){
this.table=table.getModel();
this.title=title;
PrintService[] services=PrintServiceLookup.lookupPrintServices(
DocFlavor.SERVICE_FORMATTED.PRINTABLE,null
);
if(services.length<1) new ErrorDialog("No printer available!");
else{
PrintRequestAttributeSet attributes=new HashPrintRequestAttributeSet();
PrintService service=ServiceUI.printDialog(null,50,50,services,services[0],null,attributes);
if(service!=null){
DocPrintJob job=service.createPrintJob();
try{
Doc doc=new SimpleDoc(this,DocFlavor.SERVICE_FORMATTED.PRINTABLE,null);
job.print(doc,attributes);
}catch(PrintException pe){
pe.printStackTrace();
}
}
}
}
public int print(Graphics g,PageFormat pf,int pageIndex){
if(pageIndex==0){
Graphics2D g2d=(Graphics2D)g;
g2d.translate(pf.getImageableX(),pf.getImageableY());
g2d.setColor(Color.black);
g2d.drawString(title,0,20);
for(int i=0;i<table.getColumnCount();i++){
g2d.drawString(table.getColumnName(i),i*100,40);
}
for(int i=0;i<table.getRowCount();i++){
for(int ii=0;ii<table.getColumnCount();ii++){
String cell;
Object original=table.getValueAt(i,ii);
if(original==null) cell="";
else cell=original.toString();
g2d.drawString(cell,ii*100,60+i*20);
}
}
return Printable.PAGE_EXISTS;
}else return Printable.NO_SUCH_PAGE;
}
}