填充时的PdfPTable []空指针异常数组

时间:2014-04-25 07:31:26

标签: java arrays pdfptable

我正在尝试创建一个表数组(2个表)。 我的程序在最后一行停止,并带有nullpointer异常。知道为什么吗?

com.lowagie.text.pdf.PdfPTable[] table = new com.lowagie.text.pdf.PdfPTable[1];
// the cell object
com.lowagie.text.pdf.PdfPCell cell;
// header

cell = new PdfPCell(new Phrase(wdComponentAPI.getMessage("Ordernr")));
cell.setColspan(1);
cell.setBackgroundColor(Color.LIGHT_GRAY);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table[0].addCell(cell);

3 个答案:

答案 0 :(得分:1)

您创建了数组,但其中没有任何内容。数组字段"表[0]"包含null。

添加这样的对象:

tables[0] = new PdfPTable();

或根据您的确切需要使用与PdfPTable()不同的构造函数

这是您的代码更新

com.lowagie.text.pdf.PdfPTable[] table = new com.lowagie.text.pdf.PdfPTable[1];
tables[0] = new PdfPTable();
// the cell object
com.lowagie.text.pdf.PdfPCell cell;
// header

cell = new PdfPCell(new Phrase(wdComponentAPI.getMessage("Ordernr")));
cell.setColspan(1);
cell.setBackgroundColor(Color.LIGHT_GRAY);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table[0].addCell(cell);

答案 1 :(得分:1)

不使用创建的对象创建数组

PdfPTable [] tables = new PdfPTable[1];
tables[0].doStuff() // null pointer

在数组中创建对象

PdfPTable [] tables = new PdfPTable[1];
tables[0] = new PdfPTable();
tables[0].doStuff() // works good!

答案 2 :(得分:1)

com.lowagie.text.pdf.PdfPTable[] table = new com.lowagie.text.pdf.PdfPTable[1];

您只需创建一个长度为1的数组,此时table[0]仍为null。您必须创建一个对象并在使用它之前将其分配给它

table[0] = new PdfPTable(1); // create a PDFTable with one column