2016-05-29 4 views
0

В настоящее время у меня есть этот класс, который является основным отчетом Расчета заработной платы:Доступа к информации из другого класса

PayrollReport(Person person, double salary){ 
    this.person = person; 
    this.salary = salary; 
} 

public String toString(){ 
    return person + " was paid "+ salary; 
} 

Во втором классе я нажимаю кнопку, и он присваивает значение класса заработной платы:

for (int i=0; i<;listOfPeople.size();i++){ 
    Person person = listOfPeople.get(i); 
    double salary =listOfPeople.get(i).getSalary(); 
    newPayroll = new PayrollReportItem(person, salary); 
} 

Теперь я хочу отображать PayrollReports toString() в jTextFeild в третьем классе при нажатии кнопки.

Проведя часы на этом, все, что я сделал, получил jTextFeild для отображения строк с нулевым значением.

+0

Не могли бы вы поделиться небольшой, но полный исполняемый код, который вы пробовали на вашем конце? Это поможет нам решить проблему. –

ответ

0

В вашем коде вы снова и снова назначаете значения одному и тому же объекту, то есть newPayroll. Таким образом, будет сохранено только последнее значение, и все остальные будут перезаписаны.

Что вам нужно сделать, это

  1. При нажатии кнопки, создайте новый объект второго класса.
  2. Вызов метода во втором классе, который будет создавать объект первого класса
  3. Затем присвоить значение его
  4. Затем вызовите метод toString()
  5. Повторите с шага 2, пока все значения печатаются.

Нечто подобное

Class Second{ 

    public void printAll(){ 
    for (int i=0; i<;listOfPeople.size();i++){ 
        Person person = listOfPeople.get(i); 
        double salary =listOfPeople.get(i).getSalary(); 
      newPayroll = new PayrollReportItem(person, salary); 
       newPayroll.toString(); //call method to print values 
       } 
    } 

Class Third{ 

    //when button pressed to the following 
    Second obj=new Second(); //create an object of second class 
    obj.printAll(); //call method to print 
} 

Надеюсь, что это помогает :)

Смежные вопросы