首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一个jframe如何打印出来

2012-03-09 
一个jframe怎么打印出来一个jframe里面有一个jtable表,我想把这个表打印出来,该怎么实现呢?[解决办法]J2SE

一个jframe怎么打印出来
一个jframe   里面有一个jtable表,我想把这个表打印出来,该怎么实现呢?

[解决办法]
J2SE 5 在 JTable 中添加了一些方法,从而为某些普通打印需求提供方便的访问。print() 是一个简单的新方法,它允许快速简单地向应用程序添加打印支持。另外,新的 getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat) 方法可满足更高级的打印需求。
[解决办法]
api里说得很详细
[解决办法]
$ zz╭ ⺌╮╭ ﹌╮. $
$ z(o-.-o)(o-.-o) . $
$ ┏~﹊︸ ̄~﹊︸ ̄~┓ $
$ IT者-IT开发者的网站-- $
$ 10万篇技术资料--天天更新 $
$ -----www.itzhe.cn----- $
[解决办法]
这年头搞界面的人少了。...
[解决办法]
记得用Toolkit类打什么都可以,打窗口都可以,别说打表格了!
[解决办法]
不懂,过来拿一分
[解决办法]
我还是不知道呀
刚学JAVA不久,来学习
[解决办法]
如果只是打印表的话,就用一个JTable.print();就可以了,
如果是打印整个组件的话,我这里有一个例子,希望可以对你有所帮助


package print;
import java.awt.*;

import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.swing.*;
import java.awt.event.*;
import java.awt.font.FontRenderContext;
import java.awt.font.TextLayout;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
public class PrintTestzzg extends JFrame{

PrintPanel canve;
JTable aa;
JButton Jbtn;
HashPrintRequestAttributeSet attribute;
JScrollPane jscrollpane;

public PrintTestzzg(){
canve=new PrintPanel();
setSize(400,300);

Jbtn=new JButton( "点我打印 ");

Jbtn.addActionListener(new JbtnAction());
attribute=new HashPrintRequestAttributeSet();

jscrollpane=new JScrollPane(canve);



canve.setPreferredSize(new Dimension(3000,3000));


add(jscrollpane,BorderLayout.CENTER);
add(Jbtn,BorderLayout.SOUTH);
validate();
setVisible(true);

}
public static void main(String[] args){
new PrintTestzzg();



}
class JbtnAction implements ActionListener{

public void actionPerformed(ActionEvent e) {
PrinterJob aa=PrinterJob.getPrinterJob();
aa.setPrintable(canve);
if(aa.printDialog(attribute)){
try {
aa.print(attribute);
} catch (PrinterException e1) {
e1.printStackTrace();
}


}

}

}
class PrintPanel extends JPanel implements Printable {
public PrintPanel(){
setLayout(new BorderLayout());

//
JPanel panel1=new JPanel();
panel1.setLayout(new BorderLayout());
panel1.add(new JButton( "5555 "),BorderLayout.CENTER);
add(panel1,BorderLayout.EAST);

setBackground(Color.BLUE);



JButton cc=new JButton( "kkkkkkk ");
add(cc,BorderLayout.SOUTH);
validate();
}



public void paint(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
drawPage(g2);
}

public int print(Graphics g, PageFormat pf, int page) throws PrinterException {
if (page > = 1) return Printable.NO_SUCH_PAGE;
Graphics2D g2 = (Graphics2D) g;
g2.translate(pf.getImageableX(), pf.getImageableY());
g2.draw(new Rectangle2D.Double(0, 0, pf.getImageableWidth(), pf.getImageableHeight()));

drawPage(g2);



return Printable.PAGE_EXISTS;
}





public void drawPage(Graphics2D g2)
{

super.paint(g2);

g2.drawLine(0, 0,300, 600);

}




}

}



[解决办法]
38236097 java技术群
[解决办法]
帮顶,被GUI所郁闷
[解决办法]
这年头搞Swing界面的真的好少啊...

大家都做Web
[解决办法]
看一下你的jdk版本是1.4还是1.5?
[解决办法]
呵呵,我不怎么懂,不过多看点API应该可以找点解决问题的办法的

热点排行