java - AnyLogic 弃用方法 getJComponent() 的替代方法?

标签 java anylogic

我最近在我的 Windows 10 笔记本电脑上更新到 AnyLogic PLE 8.4.0 和 Java SE 12。现在,以前工作的 AnyLogic 模型因错误“未定义 ShapeTextField 类型的方法 getJComponent()”而停止。我在 AnyLogic/Help 中查找它,我注意到 getJComponent 被标识为“已弃用”并且没有标识任何替代方法。在我看来,导致此错误的 AnyLogic 和 Java 更新之间发生了一些不匹配。我将不胜感激任何使模型正常工作的解决方法。

尝试用以下内容替换 getJComponent():

  • 通过 getX() - 给出错误“无法从 double 转换为 Jtextfield”
  • 通过 getPresentable() - 给出错误“无法从 Presentable 转换为 Jtextfield”
  • 通过 getClass() - 给出了错误“说明:无法从类转换为 JTextField。”
  • 通过 getComponentGraphics() - 给出错误“说明:方法 getComponentGraphics() 未针对 ShapeTextField 类型定义。”
  • by equals - 给出错误“说明:Object 类型中的 equals(Object) 方法不适用于参数 ()。”

代码是:

((JTextField)(editbox.getJComponent())).setHorizo​​ntalAlignment(JTextField.LEFT);

这是在 Simulation - Simulation Experiment/Java Actions/Initial Experiment Setup 字段中定义的

预期结果:没有错误信息。并且模型应该继续运行窗口。

最佳答案

感谢 @Benjamin@Felipe 的输入,以下工作:

  1. 我用相应的工件替换了编辑框和按钮 AL8.4 调色板。我将早期工件中的代码复制到 新工件中的相应字段。我删除了工件 来自 AL7。
  2. 我注释掉了用于对齐编辑框的行,因为 该功能不再可用。

通过以上两项更改,我没有收到有关未定义方法的错误消息。编辑框和按钮起作用,允许我输入 XML 文件名并使用 XML 解析器例程读取它。我现在遇到了 JAXB 与 AL8.4 集成的问题,并且还没有能够解决这个问题。我将把它作为一个单独的问题发布。

关于java - AnyLogic 弃用方法 getJComponent() 的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57403141/

相关文章:

java - log4j RollingFileAppender 在应用程序关闭之前不会写入日志

c# - 从抽象集合中生成抽象集合

simulation - 从模拟页面运行多个模拟并在模拟页面中捕获并显示最终结果

java - Anylogic,获取行人排队的时间

java - 在 AnyLogic 的汇编器 block 中配置 "New Agent"

java - java中固定小数位 double 和十的幂格式

java - 将方法与返回的 jcomponents 和泛型一起使用

anylogic - Anylogic 中的 "On exit"与 "On at exit"

java - Anylogic新分支抛出 "cannot be resolved to a variable"错误

java - java 转换泛型变量