3

我已经创建了一个 JavaFX 应用程序,我已经使用Ant构建了本机包,并且我正在使用Proguard-4.8混淆jar 。我能够使用该混淆的 jar 成功创建本机捆绑 exe。当我运行它时,它成功启动了应用程序,一切正常,但 TableView 中存在一个问题。也就是说数据存在于TableView 中,但我无法在 TableView 中看到数据。下面附上从 exe 为 TableView 拍摄的屏幕截图 -

在此处输入图像描述

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

4

3 回答 3

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());
     }
  });
于 2013-01-25T05:54:45.137 回答
3

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

请在 Oracle 中找到 PropertyValueFactory 类的规范: PropertyValueFactory 规范

于 2014-03-31T07:41:42.197 回答
-1

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

   -keepclassmembers public class  yourpackage1.**, yourpackage2.** ,yourpackage3.**{
    public javafx.beans.property.StringProperty *Property();
}
于 2018-09-27T21:44:23.803 回答