有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java ComboBoxViewerCellEditor在对象列表中显示字符串

问题陈述:获取在另一个类中声明为集合的类的getter和setter

数据模型

Public Class Person{
 String firstName;
 String lastName;
 Collection<Address> allAddresses = new ArrayList<Address>();
 getFirstName(){..}
 getLastName{..}
 getContacts{....}
}

Public Class Address{
 String Street;
 String City;
 getCity(){..};
 getStreet(){..};
}

TableViewer内容

personTableViewer.setInput(//lsit of Persons from Database)
columViewer.setLabelProvider{...
...
}
DropDownInTable dot = new DropDownInTable(valcol.getViewer());
columnViewe.setEditingSupport(dot)

DropDownClass

private ComboBoxViewerCellEditor cellEditor=null;
potected CellEditor getCellEditor(Object element) {
  //element here is person Object.I need setINput as getAddress().getCity()
  //if there was way to make element as address Object It would be great
    cellEditor.setInput(element.getAddress)
    return cellEditor;
}

若有办法强制元素成为地址对象或检索地址,那个就太好了,任何建议都值得赞赏


共 (1) 个答案

  1. # 1 楼答案

    使用setLabelProvider调用设置标签提供程序,该提供程序获取集合中每个对象的字符串。标签提供程序类似于:

    class CollectionLabelProvider extends LabelProvider
    {
      @Override
      public String getText(Object element)
      {
        // 'element' is an object from the collection
    
        CollectionEntry entry = (CollectionEntry)element;
    
        return entry.getString();
      }
    }
    

    将“CollectionEntry”替换为集合中的类