我创建了一个JavaFX应用程序,我使用 Ant 构建了本机包,我使用 Proguard-4.8 模糊 jar。 我能够成功地使用该混淆的jar创建本机bundle exe。当我运行它时,它成功启动应用程序,一切正常,但在TableView中有一个问题。那就是数据存在于 TableView 中,但我无法在TableView中看到数据。 在附加于TableView的屏幕截图下面附上 -
在混淆时,是否需要在类中映射到Tableview进行数据关联的任何额外设置或代码更改。
答案 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();
}