关于阶层打印java的信息

博主:adminadmin 2022-12-01 10:54:08 46

今天给各位分享阶层打印java的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

JAVA 实现打印用什么方法?

Print.java--打印内容定义

[code]

import java.awt.*;

import java.awt.event.*;

import java.awt.print.*;

import java.awt.image.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.border.*;

import javax.swing.event.*;

import java.util.*;

import java.io.*;

public class Print implements Printable{

int m_wPage;

int m_hPage;

int m_orientation;

Printable m_target;

int maxNumPage=1;

String title="数据表格打印";

Font titleFont=new Font("黑体",Font.BOLD,14);

boolean hasTail=true;

int tailAlign=0;

int headAlign=0;

int topSpace=0;

int leftSpace=0;

int yStart=0;

int yEnd=0;

int xStart=topSpace;

int xEnd=0;

int x=0,y=0;

String strTemp="打印内容";

public void doPrint(){

try{

m_orientation=PageFormat.PORTRAIT;

//设置打印对象,默认纸张

PrinterJob prnJob=PrinterJob.getPrinterJob();

PageFormat pageFormat=prnJob.defaultPage();

pageFormat.setOrientation(m_orientation);

m_wPage=(int)(pageFormat.getWidth());

m_hPage=(int)(pageFormat.getHeight());

//将待打印的窗体根据默认纸张设置传入打印对象

prnJob.setPrintable(this,pageFormat);

if(!prnJob.printDialog()) return;

prnJob.print();

}catch(PrinterException ex){

ex.printStackTrace();

System.err.println("打印错误:"+ex.toString());

}

}

/**

* 初始化打印参数

*/

public void initPrintParameter()

{

}

/**

*构造打印内容,以送打印机打印

*/

public int print(Graphics pg,PageFormat pageFormat,

int pageIndex) throws PrinterException{

//初始化打印参数

initPrintParameter();

//将画布设置为页面大小

pg.translate((int)pageFormat.getImageableX(),

(int)pageFormat.getImageableY());

int wPage=0;

int hPage=0;

//根据打印机页面设置调整画布大小

if(pageFormat.getOrientation()==pageFormat.PORTRAIT){

wPage=(int)pageFormat.getImageableWidth();

hPage=(int)pageFormat.getImageableHeight();

}

else{

wPage=(int)pageFormat.getImageableWidth();

wPage+=wPage/2;

hPage=(int)pageFormat.getImageableHeight();

pg.setClip(0,0,wPage,hPage);

}

wPage=wPage-2*leftSpace;

hPage=hPage-2*topSpace;

xStart=leftSpace;

xEnd=wPage-2;

//为画布设置颜色和字体

int y=topSpace;

pg.setFont(titleFont);

pg.setColor(Color.black);

//画标题,并使其居中

Font fn=pg.getFont();

FontMetrics fm=pg.getFontMetrics();

y+=fm.getAscent();

alignText(title,pg,y,xStart,xEnd,headAlign);

y+=30;

x=leftSpace+2;

Font headerFont=new Font("宋体",Font.BOLD,14);

pg.setFont(headerFont);

fm=pg.getFontMetrics();

int h=fm.getAscent();

yStart=y-1;

y+=h;

pg.setFont(headerFont);

fm=pg.getFontMetrics();

int header=y;

h=fm.getHeight();

//计算行高,每页行数,总行数和指定页码的起始行、结束行

int rowH=Math.max(h,10);

int tailH=rowH+30;

int rowPerPage=0;

int leftPix=0;

if(hasTail){

rowPerPage=(hPage-header-tailH)/rowH;

leftPix=(hPage-header-tailH)%rowH;

yEnd=hPage-leftPix-tailH+2;

}

else{

rowPerPage=(hPage-header)/rowH;

leftPix=(hPage-header)%rowH;

yEnd=hPage-leftPix+2;

}

pg.drawString(strTemp,x,y);

//画表格边框

pg.drawLine(xStart,yStart,xStart,yEnd);

pg.drawLine(xStart,yStart,xEnd,yStart);

pg.drawLine(xEnd,yStart,xEnd,yEnd);

pg.drawLine(xStart,yEnd,xEnd,yEnd);

//打印页码

if(hasTail){

int pageNumber=pageIndex+1;

String s="第"+pageNumber+"页";

alignText(s,pg,yEnd+30,xStart,xEnd,tailAlign);

}

System.gc();

return PAGE_EXISTS;

}

/**

* 文字排列,坐标在y处,显示范围(start-end)

* 0表示居中显示,1表示左对齐,2表示右对齐

*/

private void alignText(String s,Graphics pg,int y,int start,

int end,int mode){

Font fn=pg.getFont();

FontMetrics fm=pg.getFontMetrics();

int wString=fm.stringWidth(s);

int x=start;

switch(mode)

{

case 0:

if((end-start-wString)0) x=start+(end-start-wString)/2;

break;

case 1:

break;

case 2:

if((end-start-wString)0) x=start+(end-start-wString);

break;

}

pg.drawString(s,x,y);

}

public static void main(String[] args){

Print p=new Print();

p.doPrint();

}

}

[code]

运行方法:

javac -d . Print.java

java Print

自己运行一下

求java程序:输入N个正整数,按升序排列输出,并计算最大正整数与最小数的阶层。

import java.io.*;

public class Test{

public static void main(String[] args){

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

//int a[]={5,8,4,3,6,9};

int[] a;

System.out.println("输入数组的大小:");

int size=0;;

try {

size = Integer.parseInt(br.readLine());

} catch (NumberFormatException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

a=new int[size];

for(int i=0;ia.length;i++){

System.out.print("a["+i+"]=");

try {

a[i]=Integer.parseInt(br.readLine());

} catch (NumberFormatException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

System.out.println("before sort:");

for(int i=0;ia.length;i++){

System.out.print(" "+a[i]);

}

System.out.println();

//排序

sortArray(a);

System.out.println("aftersort:");

for(int i=0;ia.length;i++){

System.out.print(" "+a[i]);

}

System.out.println();

//阶乘

int min=a[0];

int max=a[a.length-1];

long result1=jieCheng(min);

long result2=jieCheng(max);

if(result1!=-1){

System.out.println(min+"的阶乘为:"+result1);

}

if(result2!=-1){

System.out.println(max+"的阶乘为:"+result2);

}

}

/**

* 冒泡排序(升序)

*/

public static void sortArray(int[] a) {

int n = a.length;

int temp;

for (int i = 1; i = n - 1; i++) {

for (int j = 0; j = n - i - 1; j++) {

if (a[j] a[j + 1]) {

temp = a[j + 1];

a[j + 1] = a[j];

a[j] = temp;

}

}

}

}

/*

* 阶乘

*/

public static long jieCheng(int k){

if(k0){

System.out.println("负数没有阶乘。");

return -1;

}

if(k==0 || k==1){

return 1;

}

//k=2

long result=1;

for(int i=1;i=k;i++){

result*=i;

}

return result;

}

}

使用java程序接收一个小于10的整数n,计算并输出阶乘.

你好,可以用递归方法实现,以下是实现代码:

public class Test {

/**

* @param args

*/

public static void main(String[] args) {

int n = 0;

try{

// 接收控制台传递参数,并将转化为整数

n = Integer.parseInt(args[0]);

}catch(Exception ex)

{

ex.printStackTrace();

System.out.println("请输入整数!");

}

// 创建对象

Test test = new Test();

// 调用递归方法,计算n的阶层

int value = test.f(n);

// 输出结果

System.out.println(value);

}

/**

* 自定义递归方法,返回f(n) * f(n-1)

* @param n

* @return

*/

private int f(int n)

{

// 当n不等于1时

if(n != 1)

{

// 递归调用

return f(n) * f(n-1);

}

// 当n等于1时

else if(n == 1)

{

return 1;

}

// 其他情况返回0

return 0;

}

}

java里 阶层是怎样写的?

public class Qiuhe {

public Qiuhe() {

}

public static void main(String args[]){

int sum = 0;//用来存放1!+2!+3!+4!+.....+10!的值,初始值为零

for(int i = 0; i 10; i++ ){

sum += jiecheng(i + 1);//调用jiecheng()函数算出i+1的阶乘,加到sum当中

}

System.out.println("1!+2!+3!+4!+.....+10!的值为:" + sum);

}

public static int jiecheng(int n){//算阶乘的函数

if(n == 1 || n == 0){

return 1;

}

else return n * jiecheng(n - 1);

}

}

java 中如何实现打印

你好。 你所创建JFrame对象可以调用自己的实例方法实现打印。 JFrame jf=new JFrame(); Toolkit tl=jf.getToolkit() //返回此窗体的工具包 PrintJob p=tl.getPrintJob(Frame frame,String jobtitle,Properties props); //获取一个 PrintJob 对象,该对象是在工具包平台上初始化某个打印操作的结果。 参数: frame - 打印对话框的父容器。不能为 null。 jobtitle - PrintJob 的标题。null 标题等同于 ""。 props - 包含零个或更多属性的 Properties 对象。这些属性没有被标准化,并且在各个实现之间不一致。因此,要求作业和页面控制的 PrintJob 应该使用此方法带有 JobAttributes 和 PageAttributes 对象的版本。可以更新此对象来反映用户离开时的作业选择。可以为 null。 Graphics g=p.getGraphics() // 为组件创建一个图形上下文。如果组件当前是不可显示的,则此方法返回 null。 jf.paintAll(g); //打印该容器及内嵌组件; jf.paint(g); //只打印该容器; 这是个大概模型,如果你需要其他的作用,就要查JDK帮助文档; 所有的代码都是我查询JDK帮助文档所得,绝对正确,而且我以前用过。

在java中什么是打印?什么是打印功能?

如楼上所言,标准打印输出,system.out.println( );如果不加ln则不换行打印输出(默认带ln),当然更多时候是用键盘敲syso然后alt+/会直接打印输出system.out.println( );

阶层打印java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、阶层打印java的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-01,除非注明,否则均为首码项目网原创文章,转载请注明出处。