java表格打印的实现

java表格打印的实现
java表格打印的实现

import java.awt.print.PageFormat;

import java.awt.print.Paper;

import java.awt.print.Printable;

import java.awt.print.PrinterException;

import java.awt.print.PrinterJob;

import javax.swing.table.TableModel;

import java.awt.Font;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.BasicStroke;

//------------------------打印类

class Print_V1 implements Printable

{

//@param Graphic指明打印的图形环境

//@param PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点)

//@param pageIndex指明页号

String title;//表头

TableModel tm;

int pound;//字体磅数

Printable printable;

double base_with=0;

int byte_count=0;

int [] col_with;

Print_V1(String title,TableModel tm,int pound)

{

this.title=title;

this.tm=tm;

this.pound=pound;

}

void getPrintable()

{

printable=new Print_V1(title,tm,pound);

}

//返回当前位置占的点数

double getlocal(int l)

{

double ww=0;

for(int ll=1;ll<=l;ll++)

{

ww=ww+base_with*col_with[ll-1];

}

return ww;

}

public int print(Graphics gra, PageFormat pf, int pageIndex) throws PrinterException

{

byte_count=0;

int row=tm.getRowCount();//数据总行数

int column=tm.getColumnCount();//总列数

col_with=new int[column];

//初始化列宽

for(int w=0;w

{

col_with[w]=tm.getColumnName(w).length();

}

//对比列宽,取该列最大值

for(int r=0;r

{

for(int w=0;w

{

col_with[w]=tm.getValueAt(r,w).toString().trim().length()>col_with[w]?tm.getValueAt(r,w).to String().trim().length():col_with[w];

}

}

//统计总列宽

for(int w=0;w

{

byte_count=byte_count+col_with[w];

}

//计算每字节占的点数

base_with=(double)780/byte_count;

if(pageIndex>=getPagesCount(tm))

return NO_SUCH_PAGE;

else

{

Graphics2D g2 = (Graphics2D) gra;//转换成Graphics2D

g2.setColor(Color.black);//设置打印颜色为黑色

//打印起点坐标

double x = pf.getImageableX();

double y = pf.getImageableY();

//设置字体

Font font = new Font("新宋体", Font.PLAIN, 15);

g2.setFont(font);

//设置实线

g2.setStroke(new BasicStroke(0.5f));

//画标题

g2.drawString(title,(float)x+365,(float)y+40);

//重设字体

Font font1 = new Font("新宋体", Font.PLAIN, 8);

g2.setFont(font1);

//剩下不超过30行时

if((row-30*pageIndex)<=30)

{

//画边框

//画横边

for(int n=0;n<=(row%30+1);n++)

{

g2.drawLine((int)x+30,(int)y+50+n*16,(int)x+780+30,(int)y+50+n*16);

}

//画竖边

g2.drawLine((int)x+30,(int)y+50,(int)x+30,(int)y+16*(row%30+4));

for(int m=1;m<=column;m++)

{

g2.drawLine((int)x+30+(int)getlocal(m),(int)y+50,(int)x+30+(int)getlocal(m),(int)y+16*(row% 30+4));

}

//画表头

g2.drawString(tm.getColumnName(0),(float)x+31,(float)y+60);

for(int i=1;i

{

g2.drawString(tm.getColumnName(i),(float)x+31+(int)getlocal(i),(float)y+60);

}

//重设字体

Font font2 = new Font("新宋体", Font.PLAIN, pound);

g2.setFont(font2);

//画数据

for(int j=30*pageIndex;j<(30*pageIndex+row%30);j++)

{

for(int k=0;k

{

/*if(j==row-1 && (tm.getValueAt(j,k) instanceof Double|tm.getValueAt(j,k) instanceof Float))

g2.drawString(new

java.text.DecimalFormat("#.00").format(tm.getValueAt(j,k).toString(),(float)x+31+k*column_widt h,(float)y+60+16*(j%30+1));

else*/

if(k==0)

g2.drawString(tm.getValueAt(j,k).toString(),(float)x+31,(float)y+60+16*(j%30+1));

else

g2.drawString(tm.getValueAt(j,k).toString(),(float)x+31+(int)getlocal(k),(float)y+60+16*(j%30 +1));

}

}

}

//超过30行

else

{

//画边框

//画横边

for(int n=0;n<=(30+1);n++)

{

g2.drawLine((int)x+30,(int)y+50+n*16,(int)x+780+30,(int)y+50+n*16);

}

//画竖边

g2.drawLine((int)x+30,(int)y+50,(int)x+30,(int)y+16*(30+4));

for(int m=1;m<=column;m++)

{

g2.drawLine((int)x+30+(int)getlocal(m),(int)y+50,(int)x+30+(int)getlocal(m),(int)y+16*(30+4)) ;

}

//画表头

g2.drawString(tm.getColumnName(0),(float)x+31,(float)y+60);

for(int i=1;i

{

g2.drawString(tm.getColumnName(i),(float)x+31+(int)getlocal(i),(float)y+60);

}

//重设字体

Font font2 = new Font("新宋体", Font.PLAIN, pound);

g2.setFont(font2);

//画数据

for(int j=30*pageIndex;j<(30*(pageIndex+1));j++)

{

for(int k=0;k

{

/*if(j==row-1 && (tm.getValueAt(j,k) instanceof Double|tm.getValueAt(j,k) instanceof Float))

g2.drawString(new

java.text.DecimalFormat("#.00").format(tm.getValueAt(j,k).toString(),(float)x+31+k*column_widt h,(float)y+60+16*(j%30+1));

else*/

if(k==0)

g2.drawString(tm.getValueAt(j,k).toString(),(float)x+31,(float)y+60+16*(j%30+1));

else

g2.drawString(tm.getValueAt(j,k).toString(),(float)x+31+(int)getlocal(k),(float)y+60+16*(j%30 +1));

}

}

}

return PAGE_EXISTS;

}

}

public int getPagesCount(TableModel tm)

{

int page=tm.getRowCount()%30==0?tm.getRowCount()/30:tm.getRowCount()/30+1;

return page;

}

/* public int print(Graphics gra, PageFormat pf, int pageIndex) throws PrinterException {

System.out.println("pageIndex="+pageIndex);

Component c = null;

//print string

//转换成Graphics2D

Graphics2D g2 = (Graphics2D) gra;

//设置打印颜色为黑色

g2.setColor(Color.black);

//打印起点坐标

double x = pf.getImageableX();

double y = pf.getImageableY();

System.out.println("X="+x);

System.out.println("Y="+y);

switch(pageIndex)

{

case 0:

//设置打印字体(字体名称、样式和点大小)(字体名称可以是物理或者逻辑名称)

//Java平台所定义的五种字体系列:Serif、SansSerif、Monospaced、Dialog 和DialogInput

Font font = new Font("新宋体", Font.PLAIN, 15);

g2.setFont(font);//设置字体

//BasicStroke bs_3=new BasicStroke(0.5f);

//float[] dash1 = {2.0f}; //虚线参数

//设置打印线的属性。

//1.线宽2、3、不知道,4、空白的宽度,5、虚线的宽度,6、偏移量

//g2.setStroke(new BasicStroke(0.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 0.0f, dash1, 0.0f)); //设置虚线

g2.setStroke(new BasicStroke(0.5f));//设置实线

//g2.setStroke(bs_3);//设置线宽

float heigth = font.getSize2D();//字体高度

System.out.println("x="+x);

// -1- 用Graphics2D直接输出

//首字符的基线(右下部)位于用户空间中的(x, y) 位置处

//g2.drawLine(10,10,200,300);

//Image src = Toolkit.getDefaultToolkit().getImage("D:\\EclipseWorkSpace3.1\\Kfc-wuxi\\WebRoot\\image\\KF C.jpg");

//g2.drawImage(src,(int)x,(int)y,c);

//int img_Height=src.getHeight(c);

//int img_width=src.getWidth(c);

//System.out.println("img_Height="+img_Height+"img_width="+img_width) ;

//画标题

g2.drawString(title,(float)x+365,(float)y+40);

//重设字体

Font font1 = new Font("新宋体", Font.PLAIN, 8);

g2.setFont(font1);

int row=data.length;

//画边框

//画横边

for(int n=0;n<=(row+1);n++)

{

g2.drawLine((int)x+30,(int)y+50+n*16,(int)x+810,(int)y+50+n*16);

}

//画竖边

for(int m=0;m<=col.length;m++)

{

g2.drawLine((int)x+30+m*60,(int)y+50,(int)x+30+m*60,(int)y+16*(row+4));

}

//画表头

for(int i=0;i

{

g2.drawString(col[i],(float)x+31+i*60,(float)y+60);

}

//画数据

for(int j=0;j

{

for(int k=0;k<13;k++)

{

if(j==row-1 && k>=6)

g2.drawString(new

java.text.DecimalFormat("#.00").format(data[j][k]).toString(),(float)x+31+k*60,(float)y+60+16*(j+ 1));

else

g2.drawString(data[j][k].toString(),(float)x+31+k*60,(float)y+60+16*(j+1));

}

}

//g2.drawImage(src,(int)x,(int)(y+1*heigth+img_Height+11),c);

return PAGE_EXISTS;

default:

return NO_SUCH_PAGE;

}

}

*/

void print_rs()

{

// 通俗理解就是书、文档

//Book book = new Book();

// 设置成横打

PageFormat pf = new PageFormat();

pf.setOrientation(https://www.360docs.net/doc/a06858866.html,NDSCAPE);//横LANDSCAPE,竖PORTRAIT

// 通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。

Paper p = new Paper();

p.setSize(590,840);//纸张大小

p.setImageableArea(10,10, 590,840);//A4(595 X 842)设置打印区域,其实0,0应该是72,72,因为A4纸的默认X,Y边距是72

pf.setPaper(p);

// 把PageFormat 和Printable 添加到书中,组成一个页面

//book.append(printable, pf);

//获取打印服务对象

PrinterJob job = PrinterJob.getPrinterJob();

// 设置打印类

//job.setPageable(book);

job.setPrintable(printable,pf);

try

{

//可以用printDialog显示打印对话框,在用户确认后打印;也可以直接打印

boolean a=job.printDialog();

if(a)

{

job.print();

}

}

catch (PrinterException e)

{

e.printStackTrace();

}

}

}

java程序设计实习报告

《Java程序设计》 实 习 报 告 中原工学院信息商务学院 经济管理系 2010年6月20号

目录 一、实习题目 (2) 二、实习目的 (2) 1、社会需求 (2) 2、专业需求 (2) 三、开发环境 (2) 四、实习内容 (3) 1、系统功能需求 (3) 2、数据库需求 (4) 五、设计过程 (4) 1、总体设计 (4) 2、详细设计 (5) 六、调试过程 (5) 七、实习小结 (5) 八、参考资料 (6)

一、实习题目 学生信息管理系统的设计与开发 二、实习目的 1、社会需求 一直以来学生的成绩管理是学校工作中的一项重要内容,随着办学规模的扩大和招生人数的增加,学校工作繁杂、资料重多,普通的成绩管理已不能适应时代的发展,它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。虽然管理信息系统已进入高校,但还未普及而且对于学生成绩管理来说,还没有一套完整的、统一的系统,建立一个成绩维护系统是非常必要的。建立学生成绩管理系统,采用计算机对学生成绩进行管理,能进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生成绩维护工作流程的系统化、规范化和自动化。2、专业需求 《Java程序设计》课程是电子商务专业的一门专业必修课程,通过java实习不仅可以提升本专业我们对此课程中的理论知识的综合应用能力而且可以提高我们的逻辑思维能力、软件开发能力。我们通过Java技术在Windows平台下开发学生信息管理系统。能够切实提高我们的程序设计水平,在实践中掌握面向对象程序设计的开发思想。 三、开发环境 操作系统;Windows XP 编程环境:MyEclipse 6.0

用EXCEL打印并保存记录

用EXCEL打印并保存记录 在一些需要打印票据的时候,还想将所打印的数据保存下来。比如“销售单”,每打印一票,同时让数据保存到另一个工作表中,便于月末核对销售总数及其他统计需要。 这次介绍的方法,就是在“票据打印”工作表中,每打印一张销售单据,同时将票面数据依次保存到“记录”工作表中,便于核对。保存完成后,自动清空销售单中的数据,单据的号码也会自动递增一个数字,以便下一张单据输入。 工具/原料 EXCEL2003 EXCEL2007 步骤/方法 1.需要在同一工作簿中设置两张工作表,一个是“票据打印”,用于打印 单据,另一个工作表是“记录”,用于保存数据。 先在“票据打印”工作表中“画”好所需要的单据样式,如下图: 其中E2单元格是单据的编号,可先输入一个单据的起始单号。 C7单元格是数量汇总公式=SUM(C4:C6) E4单元格是计算数量乘单价的金额公式=C4*D4,把这个公式向下拖动复制到E5与E6单元格。 E7单元格是金额汇总公式=SUM(E4:E6) 注意D2单元格的格式设置为“日期”格式。 2.根据“票据打印”工作表中的项目,在“记录”工作表的第一行进行设置 (项目的位置是由下面的代码决定的,大家可自己灵活调整)。

3.下面编写打印并保存的代码,按ALT+F11调出VBA窗口,插入一个用户模 块,把下面代码粘贴进去。 Sub 打印() '打印票据 Sheets("票据打印").Select ActiveWindow.SelectedSheets.PrintOut '调用打印命令打印当前页'保存数据 With Sheets("记录") x = .Range("a65536").End(xlUp).Row + 1 '取得“记录”表中最后一个空行的行号(即写入位置) For i = 0 To 2 '商品信息分三行,为了简化代码,使用循环语句 .Cells(x + i, 1) = [b2] '客户 .Cells(x + i, 2) = [d2] '日期 .Cells(x + i, 3) = [e2] '单据编号 .Cells(x + i, 4) = Cells(i + 4, 1) '商品名称 .Cells(x + i, 5) = Cells(i + 4, 2) '规格 .Cells(x + i, 6) = Cells(i + 4, 3) '数量 .Cells(x + i, 7) = Cells(i + 4, 4) '单价 .Cells(x + i, 8) = Cells(i + 4, 5) '金额 .Cells(x + i, 9) = [b8] '收款人 .Cells(x + i, 10) = [e8] '复核人 Next

Java实现打印功能

Java实现打印功能 用java实现打印,java.awt中提供了一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用用Graphics2D直接输出直接输出。 下面代码实现了简单的打印功能: import java.awt.BasicStroke; import java.awt.Color; import https://www.360docs.net/doc/a06858866.html,ponent; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Toolkit; import java.awt.RenderingHints; import java.awt.font.FontRenderContext; import java.awt.font.LineBreakMeasurer; import java.awt.font.TextAttribute; import java.awt.font.TextLayout; import java.awt.geom.Point2D; import java.awt.image.BufferedImage; import java.awt.print.Book; import java.awt.print.PageFormat; import java.awt.print.Paper; import java.awt.print.Printable; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; import java.text.AttributedString; import javax.swing.JApplet; public class PrintTest implements Printable{ /** * @param Graphic指明打印的图形环境 * @param PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点) * @param pageIndex指明页号 **/

Java课程设计小游戏

《高级语言程序设计》课程设计报告 1、程序设计说明书 【设计题目】 雷霆行动游戏程序 【问题描述】 雷霆行动是一款供大家休闲娱乐的小游戏,游戏通过鼠标控制我方飞机hero的移动,达到躲闪敌机的目的;利用鼠标键发射子弹和导弹,达到击毁敌机的目的,摧毁敌机有积分。此游戏为闯关积分类小游戏。 【软件功能】 1.按鼠标左键,游戏开始。 2.利用鼠标移动控制hero自由移动,闪躲敌方子弹。 3.利用鼠标左键发射子弹,实现打中敌方飞机的功能;利用鼠标右键释放导弹,实现摧毁大量敌 机的功能,击中一个敌方飞机积一分。 4.hero碰到对方子弹会消耗生命,消耗生命的多少,依据子弹的不同而不同。 5.一关之后会进入下一关。 6.游戏右上角红色的进度条表示hero的生命,当红色全部消失之后,游戏结束,显示死亡。 7.游戏结束后,可重新开始,同1。 【算法思想】 1.创建游戏主界面,确定窗口的坐标。 2.设计游戏开始界面显示信息及信息坐标。 3.设置游戏进行中的信息,hero的移动、释放子弹和导弹,达到击毁敌机的目的。 4.处理游戏进行中的子弹、大爆、爆炸、敌机消失和存在的条件。 5.设置进入下一关的条件。 6.设计游戏结束界面显示信息及信息坐标。 7.处理游戏重新开始满足的条件。 8.装载图像。 9.对游戏进行调试和改进,使这个游戏更加完善。 【类的设计】 本程序共有七个类: 1.MainPanel 属性:BBv为子弹数组,EEv为敌机数组,BOMBv为爆炸数组,EBv为敌机子弹数组,DBv 为大爆数组,E-num为敌机数量,E-max敌机最大数,E-vel为敌机速度,E-mov为敌机 横移几率,E-hit为敌机开火几率,Sum为击毁敌机数量,hero-hp为hero生命,back至 db-2均为图片,tracker为媒体跟踪器,y为背景滚动变量,seq为hero的动画变量,isfire 为hero开火,isblast为是否发爆,blastnum为大爆的数量,blastc为控制大爆,f、ff、s、 ss均为游戏界面上显示的信息; 方法:MainPanel(Game)构造方法,paint(Graphics)建立游戏开始界面如显示的文字,run()控制对象移动,BBmove(int,int)子弹的移动方法,DBmove(int,int)大爆的移动方法, mouseDragged(MouseEvent) 鼠标的拖拽用来保证hero不出界,mouseMoved(MouseEvent) 鼠标的移动用来控制hero移动,mousePressed(MouseEvent) 鼠标按键在组件上按下时调 用,重新开始游戏,mouseClicked(MouseEvent)鼠标按键在组件上单击(按下并释放) 时调用,释放子弹,mouseReleased(MouseEvent)鼠标按钮在组件上释放时调用, mouseEntered(MouseEvent)鼠标进入组件上调用,mouseExited(MouseEvent)鼠标离开组 件时调用;

java程序设计实践实习报告

竭诚为您提供优质文档/双击可除java程序设计实践实习报告 篇一:JAVA实习报告 实习报告 实习性质:JAVA程序设计学生姓名:胡桂豪专业班级:计应103指导教师:万青、陈戈、谢先伟实习时间:20XX-12-31—20XX-1-6实习地点:4312 重庆工程职业技术学院 目录 1实习目的................................................. ................................................... . (4) 2实习内容................................................. ................................................... . (4) 2.1设计文

档................................................. ................................................... . (4) 2.2需求分析................................................. ................................................... .. (6) 2.3设计方法................................................. ................................................... .. (6) 2.3.1chessFrame主要功能................................................. . (6) 2.3.2游戏主窗体................................................. ................................................... (7) 2.3.3主菜单................................................. ................................................... ..(:java程序设计实践实习报告).. (8)

打印excel表格技巧(图文的)

打印表格是很多朋友在工作中常常要面临的任务,这里我们通过实例图解的方式向大家提供一些Excel中实用的打印技巧。 仔细学习并使用这些技巧,可以使我们能更加得心应手地完成工作中的各种打印任务。 一、在每一页上都打印行标题或列标题 Excel工作表中,第一行通常存放这各个字段的名称,如“客户资料表”中的“客户姓名”、“服务帐号”、“公司名称”等等,我们把这行数据称为标题行(标题列依此类推)。当工作表的数据过多超过一页时,打印出来只有第一页有行标题,这样阅读起来不太方便。 用下面方法可以让每一页都打印行标题: 进入要打印的工作表,选择菜单“文件→页面设置”命令,在弹出的对话框中选择“工作表”选项卡,然后单击“打印标题”区“顶端标题行”文本区右端的按钮,对话框缩小为一行,并返回Excel编辑界面,用鼠标单击一下标题行所在的位置(图1),再单击回车即可。 图1 这时对话框恢复原状,可以看到“顶端标题行”文本框中出现了刚才选择的标题行(图2),核对无误后单击“确定”完成设置。以后打印出来的该工作表的每一页都会出现行标题了。 图2

二、只打印工作表的特定区域 在实际的工作中,我们并不总是要打印整个工作表,而可能只是特定的区域,那么应该如何设置呢?请跟着下面的方法进行。 (一)、打印特定的一个区域 如果需要打印工作表中特定的一个区域有下面两种方法。 方法1:先选择需要打印的工作表区域,然后选择菜单“文件→打印”命令,在弹出的“打印内容”对话框的“打印内容”区,勾选“选定区域”单选框(图3),再单击“确定”即可。 图3 方法2:进入需要打印的工作表,选择菜单“视图→分页预览”命令,然后选中需要打印的工作表区域,单击鼠标右键,在弹出的菜单中选择“设置打印区域”命令即可(图4)。

《java游戏编程基础》实验任务练习

《java游戏编程基础》实验任务书 实验一弹跳小球游戏设计 一实验目的 通过设计和制作弹跳小球游戏来了解游戏程序的基本结构,理解游戏循环和双缓冲机制的基本原理,并掌握游戏运行框架的设计方法。 二实验内容 学习和了解游戏基本框架的设计方法(参考教材第3章内容及相关代码),在此基础上设计弹跳小球游戏,实现小球在程序窗口边界反弹的效果。要求实现如下功能: 1. 创建游戏程序主窗体(GameFrame)和绘图面板(GamePanel); 2. 设计游戏循环,并通过线程来控制游戏运行的帧速率; 3. 在游戏逻辑更新部分实现小球的运动逻辑,使得小球可以朝着窗口四周移动,并在边界处反弹。 4. 在游戏绘制部分实现小球的图形绘制,并通过双缓冲机制消除屏幕闪烁。 5. 加入另一个小球,实现两个小球弹跳的效果。 三实验步骤 1. 阅读实验要求,设计程序整体结构及各个类的功能。 2. 启动java开发环境,新建游戏项目。 3. 根据实验内容要求编写代码,以实现相应的功能。 4.书写实验报告,详细阐述代码编写的基本思想及主要过程。 四课时分配 2课时 五提交文档 实验报告、源程序代码

实验二贪食蛇游戏设计 一实验目的 通过设计和制作贪食蛇游戏来理解游戏程序的运行机制,同时学习运用java 的事件处理机制来改变游戏状态和传递控制命令。 二实验内容 学习和了解贪食蛇游戏的基本设计思想(参考教材4.4节内容及相关代码),在此基础上进行改进,要求实现如下功能: 1.当窗口最小化或被遮挡时暂停游戏; 2.改变蛇的运动速度,按+号键加速,按-号键减速; 3.手动控制蛇的移动,按下方向键时让蛇朝对应的方向移动,否则静止不动; 4.能够添加多个食物,如当按下某个键后随机添加一个新食物(原来的食物不消失); 5.添加游戏结束规则(比如蛇头碰到边界或蛇身时结束),并能重新开始游戏。 要求至少实现3个功能。还可以根据自己的创意,加入更多功能。 三实验步骤 1. 启动java开发环境,运行示例程序。 2. 阅读示例程序,分析程序整体结构及各个类的功能。 3. 根据实验内容要求修改或添加代码,以实现相应的功能。 4.书写实验报告,详细阐述代码编写的基本思想及主要过程。 四课时分配 2课时 五提交文档 实验报告、源程序代码

JavaPrintService_Java打印API_用户手册_中文版

目录 第一章介绍 Java平台打印的历史 JDK 1.3 JDK 1.2 JDK 1.1 Java Print Service API能做什么 Java Print Service 构架 javax.print包 发现打印服务 指定打印数据格式 创建打印工作 javax.print.event包 应用程序如何使用JPS 一个基本的例子 第二章属性 属性的类别和值 属性角色 属性集 如何指定属性 标准属性 OrientationRequested Copies Media MediaSize MediaPrintableArea Destination SheetCollate Sides Fidelity 使用JPS属性 第三章指定文档类型 用户格式打印数据 预定义数据格式的MIME类型 文本数据 页面描述语言文档 图像数据 自适应打印数据 表示类 字符编码的重要性 服务格式打印数据 怎样使用DocFlavor 第四章打印及流化文档

比较StreamPrintService与PrintService 定位服务 发现打印服务 发现流打印服务 获得一个打印工作 创建DOC 注册事件 打印服务事件 打印工作事件 PrintJobAttributeListener PrintJobListener 提交打印工作 向打印机提交打印工作 向流提交打印工作 打印服务提供商 第五章打印及流化2D图像 使用打印工作打印或流化图像 打印2D图像 流化2D图像 使用服务格式数据 打印服务格式数据 流化服务格式打印数据 示例:PrintPS.java 示例:PrintGIFtoStream.java 示例:Print2DPrinterJob.java 示例:Print2DGraphics.java 示例:Print2DtoStream.java 示例:PrintGIF.java Java Print Service 词汇表

Java程序设计实训报告

陕西国际商贸学院Java实训报告 专业:计算机科学与技术 班级: 姓名: 学号: 指导老师:

前言 Java自问世以来,以其得天独厚的优势,在IT业界掀起了研究、开发它的浪潮,显示了鹏程万里的美好前景。作为一种与底层硬件无关的、“编写一次,到处运行”的高级语言和计算平台,Java天生就具有将网络上的各个平台连成一体的能力,真正实现了“网络就是计算机”的理念。以Java为代表的网络的成长,改变了我们的联系方式、生活方式、学习方式和经营方式。它的来到使我们目睹了一场类似印刷术的重大变革。毫无疑问,它将影响人类社会的发展,这就是:Java加速人类进入网络时代! 本次课程设计是配合JAVA程序设计课程,帮助我们深入学习掌握JAVA语言,熟练运用这个工具来编写的。通过课程设计各个项目的综合训练,不仅培养学生实际分析问题、编程和动手能力,而且还提高了学生的综合素质。本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习兴趣,引导学生主动学习以及正确理解、接受需要重点掌握的知识点,为参加项目开发及更深入学习做好准备。本次课程设计主要是用JAVA实现围棋系统,能够实现画笔、画直线、画圆形、并修改该画笔的大小以及颜色。该围棋程序还需具有悔棋功能以及选择棋盘大小的功能。

2014年6月11日 目录 一、实训目的及要求 (4) 二、概要设计 (5) 三、详细设计 (6)

四、功能分析 (7) 五、测试数据及运行结果 (10) 六、总结 (14)

一、实训目的及要求 1. 1 实训目的 1.使学生熟练掌握,java编成的基础知识,以及巩固图形界面及绘图知识点。 2.结合软件工程,熟悉软件开发过程。 3.训练了学生学生独立编程以及调试程序的能力。 4.训练学生对于算法的理解和设计能力。 5.加强了学生实际动手能力,以及对于面向对象方法学的理解。 6.巩固图形界面排版,以及界面的设计能力。 7.加强学生对于所学知识的理解及运用。 1.2 实训要求 1.需交电子版和纸制板实训报告各一份,电子版海源程序。 2.程序必须可运行。 3.界面必须保证美观。 4.操作简单易学。 5.各项功能不可缺损。 6.报告版面美观,易读。 二、概要设计 1. 整个围棋程序分为3个部分:棋盘、棋子、围棋主类 软件结构图(见图一):

excel表格打印区域怎么取消不了

竭诚为您提供优质文档/双击可除excel表格打印区域怎么取消不了 篇一:怎么取消excel表格中出现的像设置打印区域一样的线条 怎么取消excel表格中出现的像设置打印区域一样的线条 问:怎么取消excel表电子表格打印区域格中出现的像设置打印区域一样的线条 答:重设所有分页符功能即可excel版本参考:20xx1、打开要删除打印线条的表格2、 点击页面布局-分页符-重设所有分页符3、确定 excel表格中有蓝色边线打印就只能打印蓝色边线之内答:你这是不是分页预览了?可以点打印预览-普通视图就可电子表格打印区域以了。 或者就是设置了打印区域。如果都不行,把文件发上来再处理。 excel电子表格打印区域如何取消 问:excel电子表格打印区域如何取我的excel是20xx 版本的!如下这里

答:①选中需要打印的单元格区域,单击“文件→打印区域→设置打印区域”。②需要打 印相应的区域时,只要按下“常用”工具栏电子表格打印区域上的“打颖按钮就成了。注:想取消打印区域的话,同样也可以用这个方法!再次执行“文件→打印区域→取消打印区域”命令,即要将设置的 excel中打印区域里面加上一列要怎么加 问:打印区域中和我排的少了一列,怎么把它加进去? 答:重新选择打印区域,把需要增加的一列,选择进去即可excel版本参考:20xx测试: 原打印区域:a1:d10先打印区域:a电子表格打印区域1:e10(调整后需要打印的区域) 1、选中a1:e10打印区域 2、点击页面布局-打印区域-设置打印区域 3、查看效果(ctRp+p,打印 如何设定excel的打印区域?? 问:我要做一张excel表,但是这张表做出来了之后,打印时却只有数字,而没有 答:你没有设置边框,选定你数据去单击右电子表格打印区域键设置单元格选边框, 剩下的就是你自己选择操作了。 excel设置打印区域有什么作用,请简单明了说明,和 答:不设时,打印是按默认的页面来预览和整页打印,

java大作业编一个程序打印出公司月各员工工资

姓名:王镱澍 Java大作业 一、题目 白浪公司的雇员根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。 雇员分为以下若干类: SalariedEmployee:拿固定工资的员工。 HourlyEmployee:按小时拿工资的员工。 SalesEmployee:销售人员,工资由月销售额和提成率决定。 BasePlusSalesEmployee:有固定底薪的销售人员,工资由底薪加上销售提成。 公司会给SalaryEmployee每月另外发放2000元加班费,给 BasePlusSalesEmployee发放1000元加班费。编一个java程序创建上述若干类,并实现确定月份以及该月不同员工的工作情况后打印出该公司该月各员工工资,公司总的工资支出情况。 二、程序功能说明 编一个java程序创建上述若干类,并实现确定该月不同员工的工作情况以及输入月份后打印出该公司该月各员工工资,公司总的工资支出情况。 三、类、属性、方法说明 程序中已给出详细解释在此只作简要说明: Employee:这是所有员工总的父类。 属性:员工的姓名和生日月份。 方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。 SalariedEmployee:Employee的子类,拿固定工资的员工。 属性:月薪。 方法:每月工作超出160小时的部分按照倍工资发放。 HourlyEmployee:Employee的子类,按小时拿工资的员工。 属性:每小时的工资、每月工作的小时数。 SalesEmployee:Employee的子类,销售人员。 属性:月销售额、提成率。 方法:工资由月销售额和提成率决定。 BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员。 属性:底薪。 方法:工资由底薪加上销售提成部分。 四、程序代码 import .*; class MyException extends Exception {

Java程序设计实验题目

1.Java程序设计基础 实训项目一:Java开发环境安装与使用(2学时) 实训内容: (1)下载并安装JDK; (2)安装Java集成开发环境JCreator; (3)第1个java程序“Hello World”程序的编辑、编译与运行。 实训要求: 掌握Java开发环境的安装与配置,了解JCreator中ConfigureàoptionsàJDK Profiles的设置;掌握Java应用程序的编写、编译、运行过程。 实训项目二:Java基础应用(2学时) 实训内容: 编写简单的Java程序,将多种类型变量通过各种运算符组成不同的表达式,并将运算结果赋值给同类型的变量,使用print方法输出各变量的值。 实训要求: 掌握Java语言的各种数据类型;熟悉运算符和表达式的用法;学会编写完成一定目标的简单程序。 实训项目三:Java流程控制(2学时) 实训内容: (1)使用分支语句编写简单的Java程序,完成对某个实际问题的判断处理。 (2)使用循环语句编写简单的Java程序,解决需要重复处理的实际问题。 实训要求: 掌握条件语句的使用;掌握循环语句的使用;锻炼运用所学的知识解决实际问题的能力;了解常用的累加和、数学函数图形打印等基本问题的解决方法。 实训项目四:数组(2学时) 实训内容: (1)编写简单的Java程序,验证数组的声明、创建和使用。 (2)编写简单的Java程序,使用数组解决排序、查找等问题。 实训要求: 掌握一维数组、多维数组声明、创建和使用;掌握利用一维数组解决实际问题的方法;了解多维数组的应用。 2.类和对象、包、接口 实训项目五:类与对象的基本操作(2学时) 实训内容: 按照面向对象编程思想编写简单的类,对客观事物进行描述,类的定义包含成员变量声明及成员方法声明与实现,并创建对象进行类的测试。 实训要求: 掌握面向对象编程的思想;掌握类的定义、变量声明、方法声明及实现;掌握对象的创建。实训项目六:构造方法与方法重载(2学时) 实训内容: 编写含有构造方法与成员方法类,实现构造方法与成员方法的重载,编写该类的测试类。实训要求: 掌握构造方法的定义;理解构造方法的原理;掌握方法重载的实现;理解静态多态的概念。实训项目七:类的继承与多态(2学时) 实训内容:

Excel表格如何分页打印、自动分页、取消分页等技巧

Excel表格如何分页打印、自动分页、取消分页等技巧 经常在Excel中制作表格时,我们不可能仅仅只作一个表格,有时可能会在一个工作簿中制作多个表格。但我们又希望将所有的表格分别打印到每一张纸上面,每张纸上面只打印一个表格,那么,我们应该如何实现呢?有许多朋友都是重建新工作簿,再将表格一个一个的剪切到新工作簿中,每个工作簿里面放一个表格,最后再一个个的打印出来。虽说这种方法可以实现,但是操作比较繁琐。其实Word联盟(https://www.360docs.net/doc/a06858866.html,)有更好更简单的方法,利用Excel中的分页功能,在一个工作簿中打印出多个表格,每张纸上面打印一个表格。 Excel中如何设置手动分页打印 现在工作簿中有4个表格,我希望每张纸上面打印一个表格,分别用4张纸打印出来。 ①进入“视图”选项卡,单击“工作簿视图”选项组中的“分页预览”; ②上图“分页预览”中只有2页,分别是“第1页”和“第2页”。我们将光标移动右下角边框处,当鼠标变成双箭头时,按住左键不放,拖动边框,直到看见“第3页”和“第4页”的时候就放开鼠标;(如下图)

③现在Excel就可以打印4个页面出来了,但我们还需要将上面两个表格剪切到下面来才行,剪切完成如下图:

好了,现在分页已经完成了,打印工作簿的话,会打印4张纸,每张纸上面一个表格,下面再来说说如何自动分页打印! Excel中自动分页页面设置 纵向/ 横向设置:单击“页面布局”选项卡,单击“页边距”,选中最下面的“自定义边距”,在弹出的“页面设置”中可以选中“纵向”或“横向”; 分页的页边距设置:然后进入“页边距”设置上、下、左、右的边距大小;

打印java方法参数

打印Java方法参数 首先描述一下具体的需求就是,能不能不需要手动添加代码就能打印Java方法所有的参数,这有些时候在我们调试代码的时候有很重要的帮助。 按照这个需求,我们可以想一下我们大体需要一下什么信息,方法的名称,方法参数类型,方法参数的名字,方法参数的值。 如何实现不写代码就能够实现动态的打印这些信息呢,了解Java的这时候就都会想到动态代理。有了动态代理我们就可以不用写代码了,但是为了区分哪些方法需要打印,哪些方法不需要打印,我们这里还需要注解来辅助区分需要打印的方法。 如何获取需要打印的信息呢,这里我相信大家都会想到反射,但是反射这里有一个参数是拿不到的,哪个参数呢,方法参数的名字是拿不到的。这里我们采用的是asm的方式来获取方法参数的名字。 到这里功能已经描述清楚,需要用到的技术也描述清楚,接下来就是具体怎么实现了。 首先,我们设计了一个注解类如下: import https://www.360docs.net/doc/a06858866.html,ng.annotation.ElementType; import https://www.360docs.net/doc/a06858866.html,ng.annotation.Retention; import https://www.360docs.net/doc/a06858866.html,ng.annotation.RetentionPolicy; import https://www.360docs.net/doc/a06858866.html,ng.annotation.Target; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public@interface MethodLog { } 接下来就是我们设计的最后要打印的数据的一个简单的封装类,如下: public class MethodInfo { private int index;//参数的索引 private Object parameterType;//参数的类型 private String parameterName;//参数的名称 private Object parameterValue;//参数的值 public MethodInfo(){} public MethodInfo(int index, Object parameterType, String parameterName, Object parameterValue) { super(); this.index = index; this.parameterType = parameterType; this.parameterName = parameterName; this.parameterValue = parameterValue; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; }

Java课程设计 点小游戏

2016—2017学年第二学期 《面向对象程序设计》课程设计报告 题目:21点小游戏 专业: 班级: 姓名: 指导教师: 成绩: 计算机学院 2017年5月16日

1.设计目的 面向对象程序设计是一门实践性很强的专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。通过这次设计,掌握了以下内容:面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用类、包、接口的定义与使用。常用工具类与算法的实现(数组、向量、字符串、链表),、中常用标准GUI组件及相应的事件处理,Java的异常处理机制,Java的数据库连接技术,Java的多线程技术与动画制作以及Java的网络编程。 游戏规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。2.设计思路 本游戏选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 在要牌的过程中,如果所有的牌加起来超过21点,玩家就输了——叫爆掉(Bust),游戏也就结束了。假如玩家没爆掉,而庄家的总点数加起来大于21点后,那庄家就输了。假如庄家没爆掉,而玩家也没有爆掉,那么玩家就与庄家比点数大小,大为赢。一样的点数则庄家赢。

图 1 结构 3.设计结果与分析 当打开该小游戏时,打开游戏菜单里面的开始游戏,软件运行界面如下图所示 图2 主界面 图3 玩家点数大于21点 图4 玩家点数大于庄家点数 图5 庄家点数大于玩家点数 图6 继续要牌 图7 玩家点数等于庄家点数

《Java语言程序设计》实践环节答案

《Java程序设计》实践环节考核指导 样题一 一、纠正程序“a1.java”的语法错误,然后回答问题(25分)。 (1)纠正程序中的语法错误。见阴影部分 (2)程序的功能是什么?计算阶乘之和 如果向程序中输入数据7,程序运行的结果是什么?结果是8 请把程序运行结果的贴图存储到ans.doc中。 二、程序中有若干空白,请完善程序题目,并回答问题(40分)

1、程序A21的功能是判断2~N之间哪些整数是质数(n从键盘输入)。请完善程序,并把程序运行结果的贴图存储到ans.doc中。 2、程序A22的功能是单击按钮【求平方】,就能够输出文本框中输入数据的平方,请把程序补充完整,并把程序运行结果的贴图存储到ans.doc中。 三、程序设计(35分) 编写数组处理程序a3.java。要求定义整型数组,并从键盘上输入10个数据,然后求出其中的最大者和所有数据的总和。 答案 import java.util.Scanner; public class A3{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int a[]=new int[10]; //赋值 for(int i=0;i

Excel打印设置技巧大全

Excel打印设置技巧大全 没有打印机一样可以打印预览 在没有安装打印机的电脑上按下Excel的“打印预览”按钮后,Excel会却提示没有安装打印机,且无法打印预览。其实,只要单击“开始”→“设置”→“打印机”,然后双击“添加打印机”项目,再随便安装一个打印机的驱动程序。重启Excel,就会发现已经可以打印预览了。 打印指定页面 一个由多页组成的工作表,打印出来后,发现其中某一页(或某几页)有问题,修改后,没有必要全部都打印一遍!只要选择“文件”→“打印”(不能直接按“常用”工具栏上的“打印”按钮,否则是将整个工作表全部打印出来),打开“打印内容”对话框,选中“打印范围”下面的“页”选项,并在后面的方框中输入需要打印的页面页码,再按下“确定”按钮即可。 首行重复打印 当工作表大于1页时,用户一般希望在打印时能在每一页中均能包含首行,你可以这样设置,打开“页面设置”对话框,单击“工作表”选项卡,接下来只需在“打印标题→顶端

标题行”文本框中输入::类似的字符,或用鼠标将工作表中的首行拖过来也可以,以后就该表格首行就会打印在每页了。 表格也缩印 有时为工作需要,可能要求将多页内容调整为一页打印出来(在Word中可以通过“缩放”技巧来实现),可选择“文件”→“页面设置”,再在打开的“页面设置”对话框中单击“页面”标签,在“缩放”组下有一个“调整为”选项,只要在这里键入打印工作表内容时所需要的页数(注意页宽和页高两个值必须一致)就可以了。不过,此功能对于与纸张高、宽比例严重不协调的工作表来说,建议不要采用,否则会严重影响打印效果。 打印选定区域 选定需要打印的区域,执行“文件”→“打印”,打开“打印内容”对话框,选中“打印内容”下面的“选定区域”选项,按下“确定”按钮就行了。如果经常要打印固定的某个区域,可以先选定相应区域,再执行“文件”→“打印区域”→“设置打印区域”。经过这样的设置后,无论是执行菜单的打印命令,还是直接按“常用”工具栏上的“打印”按钮,均可将设置的区域打印出来。 此时,如果想打印别的内容,就必须先执行“文件”→“打印区域”→“取消打印区域”命令,然后再进行打印操作。 打印不连续的单元格(区域) 如果仅仅需要将一些不连续的单元格(区域)中的内容打印出来,那么在按住Ctrl键的同时,用鼠标左键单击需要打印的单元格(区域),选中多个不连续的单元格(区域,如A2.B2:C8.D10……),然后选择“文件”→“打印”,打开“打印内容”对话框,选中“打印内容”下面的“选定区域”选项,按下“确定”按钮就行了。此时,系统将选中的每一个不连续单元格(区域)分开,打印在不同页面上(即A2打印在一张纸上,B2:C8打印在另一张纸上……)。 如果需要经常打印固定的不连续行、列,可以在上述隐藏设置完成后,执行“视图”→

Java打印程序设计

Java打印程序设计 1 前言 在我们的实际工作中,经常需要实现打印功能。但由于历史原因,Java提供的打印功能一直都比较弱。实际上最初的jdk根本不支持打印,直到jdk1.1才引入了很轻量的打印支持。所以,在以前用Java/Applet/JSP/Servlet设计的程序中,较复杂的打印都是通过调用ActiveX/OCX控件或者VB/VC程序来实现的,非常麻烦。实际上,SUN公司也一直致力于Java打印功能的完善,而Java2平台则终于有了一个健壮的打印模式的开端,该打印模式与Java2D图形包充分结合成一体。更令人鼓舞的是,新发布的jdk1.4则提供了一套完整的"Java 打印服务 API" (Java Print Service API),它对已有的打印功能是积极的补充。利用它,我们可以实现大部分实际应用需求,包括打印文字、图形、文件及打印预览等等。本文将通过一个具体的程序实例来说明如何设计Java打印程序以实现这些功能,并对不同版本的实现方法进行分析比较,希望大家能从中获取一些有益的提示。 2 Java中的打印 2.1 Java的打印API Java的打印API主要存在于java.awt.print包中。而jdk1.4新增的类则主要存在于javax.print 包及其相应的子包javax.print.event和javax.print.attribute中。其中javax.print包中主要包含打印服务的相关类,而javax.print.event则包含打印事件的相关定义,javax.print.attribute则包括打印服务的可用属性列表等。 2.2 如何实现打印 要产生一个打印,至少需要考虑两条: 需要一个打印服务对象。这可通过三种方式实现:在jdk1.4之前的版本,必须要实现java.awt.print.Printable接口或通过Toolkit.getDefaultToolkit().getPrintJob来获取打印服务对象;在jdk1.4中则可以通过javax.print.PrintSerivceLookup来查找定位一个打印服务对象。 需要开始一个打印工作。这也有几种实现方法:在jdk1.4之前可以通过java.awt.print.PrintJob(jdk1.1提供的,现在已经很少用了)调用print或printAll方法开始打印工作;也可以通过java.awt.print.PrinterJob的printDialog显示打印对话框,然后通过print方法开始打印;在jdk1.4中则可以通过javax.print.ServiceUI的printDialog显示打印对话框,然后调用print方法开始一个打印工作。 2.3 打印机对话框 2.3.1 Printable的打印对话框 开始打印工作之前,可以通过PrinterJob.printDialog来显示一个打印对话框。它给用户一个机会以选择应该打印的页码范围,并可供用户改变打印设置。它是一个本地对话框。

Excel 表格打印的方法与技巧

Excel表格打印的方法与技巧 一、表格打印 对于刚刚创建完毕的表格来说,不要立刻单击“打印”按钮输出表格。应当按下面的介绍进行设置和预览,再进行打印。 1、打印设置 首先单击“文件”菜单下的“页面设置”命令,打开“工作表”选项卡。如果每一页都要打印表格标题、说明和列标题,应当用鼠标单击“顶端标题行”框。再将光标放入工作表左边的“行标”处,待光标变成右箭头时拖过要打印的行,即可使绝对引用的行号出现在“顶端标题行”内。经过上述处理,表格的每一页均可重复打印表格标题、说明之类的内容。图1中的“左端标题列”作用同上,如果你将数据的标题放到了列中,也可以像“顶端标题行”那样重复打印。 工作表的“行号”和“列标”在默认时为不打印。如果你需要打印工作表中的“行号”和“列标”,可以按以下步骤操作:打开图1所示的“工作表”选项卡,选中其中的“行号列标”复选框即可。 另外,“页边距”选项卡的“居中方式”下有两个比较重要的选项,它们可以决定表格在页面上的“水平”和“垂直”居中方式,你可以根据自己的需要选择。 2、指定打印页数 打印表格会遇到最后一页只有很少几行数据的情况,手工调整费时费力,我们可以让Excel进行自动操作:打开待打印表格所在的工作表,单击“文件”菜单中的“页面设置”

命令,就可以看到“页面”选项卡。假如你通过“打印预览”看到最后一页(如16页)只有两三行,此时可以选中“调整为”单选项,然后在“页宽”框内输入(或选择)“1”,接着在“页高”框内输入(或选择)你要打印的页数(如15页)。这样就可以通过减小行高、字号等方法将最后一页的内容均匀分配到其他页,从而使打印出来的表格正好占满整数页。 3、打印预览 打印设置完成后,单击图1或工具栏中的“打印预览”按钮,就可以打开“打印预览”窗口,你可以从状态栏看到待打印表格的页数。拖动竖直滚动条上的滑块或转动滚轮鼠标上的滚轮,可以快速翻页查看任意一页的打印效果。与Word不同的是:Excel预览窗口的工具按钮较多。其中“设置”按钮可以打开“页面设置”对话框,修改打印方向、页面大小和页边距等等。“页边距”按钮可以在预览页上显示页边距和页眉等的设置线,用鼠标拖动即可快速修改这些参数。单击“分页预览”按钮可以进入“分页预览”视图,便于观察表格在Excel窗口中的布局和总页数等;使用“视图”菜单下的“普通”命令可以回到“普通”视图。 4、表格打印 如果你对预览结果非常满意,就可以单击图2中的按钮直接打印了,也可以回到Excel 主窗口,使用“打印”按钮或命令进行打印。这里的操作和Word非常相似,本文就不深入说明了。另外,Excel还可以和Word“联合作战”,利用后者的打印功能输出更加复杂的表格,我们将在后续的系列中介绍有关的内容。 二、打印技巧

相关文档
最新文档