2013-02-14 6 views
0

Я пытаюсь показать значение переменной из класса 'dbproperties' в документе pdf. Следующий код иллюстрирует это,itext variable issue

dbproperties db = new dbproperties(); 

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

но получаю сообщение об ошибке

нестатическая переменная не может ссылаться из статического контента «для» Chunk TEXT1 = новый Chunk (db.index_number);

Может ли кто-нибудь помочь мне с этим, пожалуйста?

+1

ok.can вы можете добавить полный исходный код ?. по крайней мере, добавить часть проблемы с кодом – Ami

+1

@ raam030 вы должны отправить * необходимую информацию в свой вопрос; например в ситуации у вас возникают проблемы со статическими или нестационарными членами или кодом, но код, который вы нам даете, полностью скрывает, статичен или нет. – mkl

+0

Открытый класс dbproperties расширяет javax.swing.JFrame {String index_number; Некоторые методы .....} –

ответ

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

Очень полезное объяснение .. Я исправил его сейчас, спасибо за помощь. Большое спасибо. –

1

Можете ли вы показать нам более точный код, вызывающий эту ошибку?

Мое мнение, что вы объявили переменную дб отдельно, в не статический метод или как поле экземпляра:

dbproperties db = new dbproperties(); 

, но следующий код, выполненный в методе STATIS, как этот:

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

Затем db не может быть доступен из основного. Они должны быть либо статическими, либо экземплярами. Вы можете объявить db внутри основного, чтобы решить эту проблему.

+0

Да, теперь это исправлено. Правильно, я должен был объявить внутри основного метода/метода, в котором я пытаюсь это реализовать. Спасибо вам за помощь.. –