你在构造里利用j2.paint(g1)画表格是不行的,paint方法的参数相当于一张白纸,j2.paint(g1)的意思是在table的白纸上画JPanel:)。
你应该利用这样实现,JPanel j1 = new JPanel() {
public void paint(Graphics g) {
label.paint(g);//label为JLabel的实例。
}}
JPanel j2 = new JPanel() {
public void paint(Graphics g) {
table.paint(g); //table为JTable实例。
}
} 当然你的gif的构造需要相应的变一变,传递JTable了。
更好的实现是在Printable的print的方法内利用translate来移动Graphics,自由绘画。
你应该利用这样实现,JPanel j1 = new JPanel() {
public void paint(Graphics g) {
label.paint(g);//label为JLabel的实例。
}}
JPanel j2 = new JPanel() {
public void paint(Graphics g) {
table.paint(g); //table为JTable实例。
}
} 当然你的gif的构造需要相应的变一变,传递JTable了。
更好的实现是在Printable的print的方法内利用translate来移动Graphics,自由绘画。
解决方案 »
- 请问如何从文件中读double数据?
- 一键绘图
- GLSpeaker(局域网语音,聊天工具)发布,欢迎下载使用,多提建议。java能否捕捉到所有系统事件?
- 关于FOR循环
- File file = new File(“123.txt”) 用什么办法让文件是隐藏文件
- javax.ejb在哪个包里?
- 怎样下载jbuilder5.0使用的图书或下载的网址
- 请问JAVA中有没有类似C中__FILE__,__LINE__这样的变量。C高手才知道吧
- 请问jbuildr环境下如何用如何用IE直接运行APPLET?
- java String类方法 toLowerCase(Locale locale)
- 一个java小程序的问题
- 在做捕鱼游戏时候,发现加载图片时候遇到.plist文件
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(new Printable() {
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) {
gifex.paint(graphics);//gifex必须是全局或final变量。
return Printable.PAGE_EXISTS;
}
};try{
job.print();
}...
有很多有用的文章可以参考