当前位置: 代码迷 >> J2SE >> 一个jframe如何打印出来
  详细解决方案

一个jframe如何打印出来

热度:224   发布时间:2016-04-24 16:51:32.0
一个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();
}