一段用于套打的代码,哪位帮忙改一下。
package com.jfzx.util;
import java.awt.print.*;
import java.awt.*;
public class PrintTest implements Printable {
private String[] value = null;// { "001", "002", "003"};
private int[][] position = null;// { { 10, 50 }, { 30, 70 }, { 50, 90 }};
/**
* implements Printable
*/
public int print(Graphics g, PageFormat pf, int pageIndex) {
/*位置2*/
System.out.println(pageIndex);
//只打一页
if (pageIndex > 0) {
return Printable.NO_SUCH_PAGE;
}
Graphics2D g2d = (Graphics2D) g;
for (int i = 0; i < value.length; i++) {
String str = value[i];
int[] temp = position[i];
int x = temp[0];
int y = temp[1];
g2d.drawString(str, x, y);
}
return Printable.PAGE_EXISTS;
}
/*public static void main(String[] args) {
PrinterJob pj = PrinterJob.getPrinterJob();
PageFormat pf = PrinterJob.getPrinterJob().defaultPage();
Paper paper = pf.getPaper();
//假设
double pageWidth = 640;
double pageHeight = 480;
paper.setSize(pageWidth, pageHeight);
paper.setImageableArea(0, 0, pageWidth, pageHeight);
pf.setPaper(paper);
pj.setPrintable(new PrintTest(), pf);
if (pj.printDialog()) {
try {
/*位置1*/
pj.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}*/
public void printReport(){
PrinterJob pj = PrinterJob.getPrinterJob();
PageFormat pf = PrinterJob.getPrinterJob().defaultPage();
Paper paper = pf.getPaper();
//Set Paper Size
double pageWidth = 480;
double pageHeight = 640;
paper.setSize(pageWidth,pageHeight);
paper.setImageableArea(0, 0, pageWidth, pageHeight);
pf.setPaper(paper);
pj.setPrintable(new PrintTest(), pf);
if (pj.printDialog()) {
try {
pj.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
/**
* @return 返回 position。
*/
public int[][] getPosition() {
return position;
}
/**
* @param position 要设置的 position。
*/
public void setPosition(int[][] position) {
this.position = position;
}
/**
* @return 返回 value。
*/
public String[] getValue() {
return value;
}
/**
* @param value 要设置的 value。
*/
public void setValue(String[] value) {
this.value = value;
}
}
问题:代码是别人给的例子,要改为从网页提交中得到数据,把value和position属性初始为null,加了set方法。但在页面上set数据后,在代码中/*位置1*/处out.print能打出东西,但在/*位置2*/处就为null了,并且报NullPointerException。为什么会变为null呢?在网页上该怎么调用?