2013-02-14 68 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