JavaFX 2 observableList <t>数据模型表示字符串</t>

时间:2012-12-12 10:01:07

标签: listview javafx datamodel

我需要一些帮助,伙计们: 问题是我想要ListView&gt;用于显示基础dataModel类的.toString(或类似内容)的组件(ObservableList&gt; tests = FXCollections.observableList(list))

所以在Java中:

public class KinderNonStandard extends SeleneseTestCase {

@Before
public ... {}

@Test
public ... {}

@After
public ... {}

@Override
public String toString() {
 return "I want this string to be shown at presentation layer of listView<T>";
}
}

然后我有:

    public class TestWindowController implements Initializable{

    @FXML private ListView<Class<? extends SeleneseTestCase>> availableTests;

    @Override
    public void initialize(URL location, ResourceBundle resources) {

 //list contains classes like KinderNonStandard (extends SeleneseTestCase...) 
    ObservableList<Class<? extends SeleneseTestCase>> tests  = Collections.observableList(list);
availableTests.setItems(tests);   
    }    
   }

最后,当我运行一个应用程序时,在ListView中我看到类似“class package.subpackage.KinderNonStandard”的内容,而不是在该类的toString中重写的内容。 好吧,我不太习惯使用地图和使用键作为字符串和值作为底层数据模型类。 那么我可以以某种方式管理它以显示覆盖toString方法吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的toString()位于KinderNonStandardClass<? extends SeleneseTestCase>内,而您的列表包含Class<? extends SeleneseTestCase>。要强制调用toString()方法,首先需要实例化相应类的对象。例如:

for(Class<? extends SeleneseTestCase> testItem : tests) {
    System.out.printlin(Class.forName(testItem.getName()).newInstance().toString());
}