【问题标题】:JavaFX : TableView contents are not showingJavaFX:TableView 内容未显示
【发布时间】:2013-01-18 10:48:23
【问题描述】:

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

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

【问题讨论】:

  • (i) 它在混淆/捆绑操作之前工作吗? (ii) 有没有放日志检查问题是表是空的(没有数据)还是数据不显示(可能是多方面的原因)?
  • (1)是的,它在混淆/捆绑操作之前工作得非常好。 (2) 否 确认有数据。我能够对表的数据执行操作。问题只是数据不可见。
  • 可能是格式问题(例如缺少 css)?
  • 我没有为它添加任何 CSS。

标签: java ant tableview javafx obfuscation


【解决方案1】:

我正在走自己的路 我使用 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());
     }
  });

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-08-16
        • 2014-04-15
        • 2016-07-26
        • 2022-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-14
        • 2013-06-25
        相关资源
        最近更新 更多