JavaFX:没有显示TableView内容

时间:2013-01-18 10:48:23

标签: java ant tableview javafx obfuscation

我创建了一个JavaFX应用程序,我使用 Ant 构建了本机包,我使用 Proguard-4.8 模糊 jar。 我能够成功地使用该混淆的jar创建本机bundle exe。当我运行它时,它成功启动应用程序,一切正常,但在TableView中有一个问题。那就是数据存在于 TableView 中,但我无法在TableView中看到数据。 在附加于TableView的屏幕截图下面附上 -

enter image description here

在混淆时,是否需要在类中映射到Tableview进行数据关联的任何额外设置或代码更改。

3 个答案:

答案 0 :(得分:5)

我正在走自己的路 我使用长形式的 PropertyValueFactory

col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Test, String>,
             ObservableValue<String>>() {
     public ObservableValue<String> call(TableColumn.CellDataFeatures<Test, String> t) {
         // t.getValue() returns the Test instance for a particular TableView row
         return t.getValue().testProperty();
         // or
         return new SimpleStringProperty(t.getValue().getMessage());
     }
  });

答案 1 :(得分:3)

如果对表使用“PropertyValueFactory”,则应保持Your_Object类不被混淆。如果不这样做,则在混淆后,PropertyValueFactory无法搜索Your_Object,因为此对象已被混淆。

请在以下位置找到Oracle的PropertyValueFactory类的规范: PropertyValueFactory specification

答案 2 :(得分:-1)

想象您已经在不同的程序包中建立了如此多的表,那么您需要全部更改。 不,我建议在您的proguard_config中使用它会有所帮助

   -keepclassmembers public class  yourpackage1.**, yourpackage2.** ,yourpackage3.**{
    public javafx.beans.property.StringProperty *Property();
}