一个jframe怎么打印出来 一个jframe 里面有一个jtable表,我想把这个表打印出来,该怎么实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 J2SE 5 在 JTable 中添加了一些方法,从而为某些普通打印需求提供方便的访问。print() 是一个简单的新方法,它允许快速简单地向应用程序添加打印支持。另外,新的 getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat) 方法可满足更高级的打印需求。 我已经试过了,提示:E:\student>javac studentManager.java.\scoreInfSelect.java:353: cannot resolve symbolsymbol : method print ()location: class javax.swing.JTable jt1.print(); ^1 error我该怎么做? $ zz╭ ╮╭ ﹌╮. $$ z(o-.-o)(o-.-o) . $$ ┏~﹊︸ ̄~﹊︸ ̄~┓ $$ IT者-IT开发者的网站-- $$ 10万篇技术资料--天天更新 $$ -----www.itzhe.cn----- $ CSDN 社区108名版主专家高手首次聚首,难道社区里的所有人都参加聚会去了么?怎么就没个主事的人来解决一下菜鸟们的疑惑呢? 记得用Toolkit类打什么都可以,打窗口都可以,别说打表格了! 我试过用toolkit打印,不过打印机没反映,帮忙看看try { Toolkit kit = Toolkit.getDefaultToolkit(); //获取工具箱 Properties props = new Properties(); props.setProperty("awt.print.printer","Epson5000"); props.setProperty("awt.print.numCopies","1"); if (kit != null) { //获取工具箱自带的打印对象 PrintJob printJob = kit.getPrintJob(this, "打印查询结果", props); if (printJob != null) { Graphics pg = printJob.getGraphics(); //获取打印对象的图形环境 if (pg != null) { try { jp1.printAll(pg); this.repaint(); }catch(Exception e) { } } } } 我还是不知道呀刚学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); } } } 谢谢tiger0804()不过我还是不太明白printPanel里的内容,如果向我所说的要打印jframe里的jtable 该如何修改PrintPanel里的内容呢? 这年头搞Swing界面的真的好少啊...大家都做Web 看一下你的jdk版本是1.4还是1.5? 呵呵,我不怎么懂,不过多看点API应该可以找点解决问题的办法的 TBD2 on sheet "Sheet1" not supported - omitting是什么意思啊,我在操作excel时数据能写入已存在的excel文件,但是文件中原来的文字变成乱码,而且有上面的提示,请指教,谢谢 你的帖子都发了一个多月了哦~~可惜我对java的GUI不熟,所以暂时帮不了你。你的另外一个问题,就是select语句的问题,我在你提问的地方回答了。 DatagramPacket的两个小疑问 类 Config 是公共的,应在名为 Config.java 的文件中声明 java问题 异常 求一个好用的免费的JAVA代码混淆软件 做过生成java的exe的高手请进(在线等~~~~~~~~) 怎么使SWT做的一个对话框在屏幕中居中呢?或者放在任意位置? 如何把byte值加上一个0x的前缀? java,求解决。使用了未经检查或不安全的操作呢?请使用-Xlint:unchecked 重新编译. 如何用resultset来读取和存储sqlserver的日期数据 我很奇怪这是什么病毒??? 为啥我插不进去?
.\scoreInfSelect.java:353: cannot resolve symbol
symbol : method print ()
location: class javax.swing.JTable
jt1.print();
^
1 error
我该怎么做?
$ z(o-.-o)(o-.-o) . $
$ ┏~﹊︸ ̄~﹊︸ ̄~┓ $
$ IT者-IT开发者的网站-- $
$ 10万篇技术资料--天天更新 $
$ -----www.itzhe.cn----- $
try
{
Toolkit kit = Toolkit.getDefaultToolkit();
//获取工具箱
Properties props = new Properties();
props.setProperty("awt.print.printer","Epson5000");
props.setProperty("awt.print.numCopies","1");
if (kit != null) {
//获取工具箱自带的打印对象
PrintJob printJob = kit.getPrintJob(this, "打印查询结果", props);
if (printJob != null) {
Graphics pg = printJob.getGraphics(); //获取打印对象的图形环境
if (pg != null)
{
try
{
jp1.printAll(pg);
this.repaint();
}catch(Exception e)
{
}
}
}
}
刚学JAVA不久,来学习
如果是打印整个组件的话,我这里有一个例子,希望可以对你有所帮助
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);
}
}
}
可惜我对java的GUI不熟,所以暂时帮不了你。
你的另外一个问题,就是select语句的问题,我在你提问的地方回答了。