Как напечатать в текстовое поле J все содержимое древовидной карты? - PullRequest
1 голос
/ 23 октября 2011

Привет Всем спасибо, что нашли время посмотреть на мой вопрос.

Я хотел бы использовать поле JText, которое я создал, для отображения значений древовидной карты, которая содержит всех сотрудников: идентификационные номера (как ключ на карте), а также объект Employee, который содержит метод to string всех данных сотрудника.

система работает нормально, потому что когда я печатаю на консоль (CMD), она работает нормально и печатает все значения в MAP, но когда я пытаюсь распечатать ее в поле JText, она печатает только один объект (один сотрудник ) из всего списка.

Я считаю, что проблема заключается в цикле for, который я использую для доступа ко всем деталям.

проблема заключается в этой строке кода:

writeStrings.setText(writeStrings.getText()+" "+dEmp);

Это код целиком:

public void chooseEmpToAdd()
{


     JFrame frameAllEmps = new JFrame();
      frameAllEmps.setSize( 450, 140 );
     frameAllEmps.pack();
     frameAllEmps.setVisible(true); 


    int x = 0;
    System.out.println("ALL Emps from the tree map");
    for(int key:employeeMap.keySet())
    {
        JTextField writeStrings;
        writeStrings = new JTextField(20);
        Employee dEmp = employeeMap.get(key);
        System.out.println("Employe no :" +x+": "+dEmp);
        writeStrings.setText(writeStrings.getText()+" "+dEmp);
        frameAllEmps.add(writeStrings); 
         x++;
    }

}   

1 Ответ

3 голосов
/ 23 октября 2011
writeStrings = new JTextField(20);

Вы создаете новый компонент JTextField на каждой итерации и добавляете его в контейнер. JFrame использует BorderLayout в качестве макета по умолчанию. Этот макет помещает ваш компонент JTextField в центр (frameAllEmps.add (writeStrings)). Таким образом, вы потеряли предыдущий добавленный JTextField и видите только последний компонент JTextField.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...