2013-02-14 67 views
0

我想在pdf文档中显示类'dbproperties'的变量值。下面的代码说明它,itext变量问题

dbproperties db = new dbproperties(); 

Chunk text1 = new Chunk(db.index_number); 
Paragraph p = new Paragraph(); 
p.add(text1); 
document.close(); 

但得到一个错误

非静态变量不能从一个静态内容“为”块的text1 =新的块(db.index_number)引用;

任何人都可以帮助我吗?

+1

ok.can你可以添加完整的源代码?至少添加部分代码问题发生 – Ami 2013-02-14 09:39:05

+1

@ raam030你应该在你的问题中发布* required *信息;例如在目前的情况下,你对静态或非静态成员或代码有问题,但是你给我们的代码完全隐藏了它是否是静态的。 – mkl 2013-02-14 09:41:32

+0

public class dbproperties extends javax.swing.JFrame {String index_number;一些方法.....} – 2013-02-14 09:42:52

回答

1

在不完整的代码猜测,由于另一种尝试:

难道说db是你的类的非静态成员,但该代码在一些静态的方法或代码块执行?例如。

class YourClass 
{ 
    dbproperties db = new dbproperties(); 

    public static void main(String[] args) 
    { 
     [...] 
     Chunk text1 = new Chunk(db.index_number); 
     Paragraph p = new Paragraph(); 
     p.add(text1); 
     document.close(); 
     [...] 
    } 
} 

在这种情况下的代码不能访问db作为代码是一个静态方法(即,不在你的类的一个实例的上下文中),而该构件的访问被关联到的单个实例。

在这种情况下,您需要您的课程实例,例如

 [...] 
     YourClass instance = new YourClass(); 
     Chunk text1 = new Chunk(instance.db.index_number); 
+0

非常有帮助的解释..我现在修复它,谢谢你的帮助..非常感谢。 – 2013-02-14 09:58:54

1

您能向我们展示导致此错误的更精确的代码吗?

我的观点是,你另行申报分贝变量,在非静态方法或只是作为实例字段:

dbproperties db = new dbproperties(); 

但在统计的方法执行以下代码,这样的:

public static void main(String[] argv){ 
    Chunk text1 = new Chunk(db.index_number); 
    .... 
} 

然后db不能从main访问。它们应该既是静态的也是实例。 你可以在里面声明db来解决它。

+0

是的,现在已经修好了。你是对的,我应该在主要方法/方法里面声明,我试图实现这个。感谢您的帮助.. – 2013-02-14 09:57:05