Java-Eclipse插件-用表填充树项

问题描述

我有2个Java Bean类-公司和雇员。 Employee.java具有属性“名称”(String),“电子邮件”(String)和“工资”(int),以及所有属性的获取器和设置器。 Company.java具有属性“名称”(字符串),“城市”(字符串)和“雇员”(列表),获取器和设置器。 我想创建一个包含公司列表的TreeTable,对于每个公司,我想将一个包含公司雇员列表的表显示为TreeItem。对于此实现,我使用的是org.eclipse.swt.widgets中的类。 这是我的TreeTable代码:

public class CompaniesTableCreation {

private static List<Company> companies;

public static void main(String[] args) {
    init();
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    Tree companiesTree = new Tree(shell,SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    companiesTree.setHeaderVisible(true);
    TreeColumn column1 = new TreeColumn(companiesTree,SWT.LEFT);
    column1.setText("Name");
    column1.setWidth(200);
    TreeColumn column2 = new TreeColumn(companiesTree,SWT.LEFT);
    column2.setText("City");
    column2.setWidth(200);
    for (Company c : companies) {
        TreeItem companyTreeItem = new TreeItem(companiesTree,SWT.NONE);
        companyTreeItem.setText(new String[] { c.getName(),c.getCity() });
        
        Table employeesTable = new Table(companiesTree,SWT.BORDER
                | SWT.V_SCROLL | SWT.H_SCROLL);
        employeesTable.setHeaderVisible(true);
        String[] titles = { "Name","Email address","Salary" };

        for (String title : titles) {
            TableColumn column = new TableColumn(employeesTable,SWT.NULL);
            column.setText(title);
        }

        for (Employee e : c.getEmployees()) {
            TableItem employeeTableItem = new TableItem(employeesTable,SWT.NULL);
            employeeTableItem.setText(0,e.getName());
            employeeTableItem.setText(1,e.getEmail());
            employeeTableItem.setText(2,String.valueOf(e.getSalary()));
        }

        for (int loopIndex = 0; loopIndex < titles.length; loopIndex++) {
            employeesTable.getColumn(loopIndex).pack();
        }
        
        TreeItem employeesItem = new TreeItem(companyTreeItem,SWT.NONE);
        employeesItem.setData(employeesTable);          

        //  If I display the employees as simple TableItems,data is OK,but I need a Table
        /*for (Employee e : c.getEmployees()) {
            TreeItem employeeItem = new TreeItem(treeItem,SWT.NONE);
            employeeItem.setText(new String[] { e.getName(),e.getEmail(),String.valueOf(e.getSalary()) });

        }*/
    }
    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();
  }

private static void init()
{
    companies = new ArrayList<Company>();
    Company c = new Company("IBM","New York");
    c.addEmployee(new Employee("John","john.ibm.com",100));
    c.addEmployee(new Employee("Michael","michael.ibm.com",200));
    companies.add(c);
    
    c = new Company("Google","San Francicsco");
    c.addEmployee(new Employee("Linda","linda.google.com",100));
    c.addEmployee(new Employee("Harry","harry.google.com",150));
    c.addEmployee(new Employee("Tom","tom.google.com",120));
    companies.add(c);
}
}

预期的结果是,当我从树中扩展公司时,打开分配有该公司员工的表,但是在当前实现中,什么都没有发生。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...