Binyomin
Binyomin

Reputation: 367

How to print to a J text box the entire contents of a tree map?

Hi Everyone thanks for taking the time to look at my question.

I would like to use the JText field I have created to display the values of a tree map which contains all the employees: ID numbers (as the key in the map)as well as an Employee object which contains a to string method of all the employee details.

the system seems to be working fine because when I print to the console (CMD) it works fine and prints out all the values in the MAP but when I try print it to a JText box it only prints one object (one employee) from the entire list.

I believe the issue lies with my for loop i am using to access all the details.

the issue lies with this line of code:

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

This is the code in its entirety:

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++;
    }

}   

Upvotes: 1

Views: 449

Answers (1)

svaor
svaor

Reputation: 2245

writeStrings = new JTextField(20);

You create new JTextField component on every iteration and add it to container. JFrame uses BorderLayout as a default layout. This layout puts your JTextField component in the center (frameAllEmps.add(writeStrings)). So you lost previous added JTextField and see only last JTextField component.

Upvotes: 3

Related Questions