如何在J文本框中打印树图的全部内容?

时间:2011-10-23 06:43:48

标签: java swing

大家好,感谢您花时间看我的问题。

我想使用我创建的JText字段来显示包含所有员工的树图的值:ID号(作为地图中的键)以及包含to字符串方法的Employee对象所有员工的详细信息。

系统似乎运行正常,因为当我打印到控制台(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 个答案:

答案 0 :(得分:3)

writeStrings = new JTextField(20);

您在每次迭代时创建 new JTextField组件并将其添加到容器中。 JFrame使用BorderLayout作为默认布局。 此布局将JTextField组件放在中心(frameAllEmps.add(writeStrings))。所以你丢失了之前添加的JTextField,只看到了最后一个JTextField组件。