【问题标题】:How do I use Swing with Scala 2.11 in Eclipse?如何在 Eclipse 中使用 Swing 和 Scala 2.11?
【发布时间】:2015-04-15 18:26:45
【问题描述】:

我刚刚将 Scala 升级到 2.11,现在我无法导入 scala.swing。我该如何从中恢复?我可以只下载一个 jar 文件或类似的简单文件吗?我希望我不必构建任何东西。

编辑:如果可能,该解决方案应该可以在 Eclipse 中使用,而无需从源代码构建任何东西。

【问题讨论】:

  • 你是如何构建你的 scala 项目的?
  • 我在 Windows 7 上使用 Scala IDE (Eclipse),构建 4.0.0 vfinal (Luna),Java 1.8。

标签: scala scala-swing


【解决方案1】:

Here 是一个如何为此更新依赖项的示例。

在 2.11 中,标准库的许多部分被拆分为它们自己的模块,包括 Swing 的东西。

【讨论】:

  • 那篇文章看起来就是我需要的,如果我能理解的话。不幸的是,我一直在像使用 Java 一样使用 Scala,也就是说,让 Eclipse 为我处理所有的构建。
  • 那篇文章看起来就是我需要的,如果我能理解的话。不幸的是,我一直在像使用 Java 一样使用 Scala,也就是说,让 Eclipse 为我处理所有的构建。我认为这对我来说意味着,在我学习 SBT、Maven 以及可能其他一些我不感兴趣的 IT 级工具之前,我不能再将 Scala 与 Swing 一起使用。这很遗憾,因为我更喜欢 Scala比 Java 更好,但 Java 中的 Swing“可以正常工作”。
  • 我不熟悉 Eclipse 如何进行依赖管理,但文章的全部内容是您需要添加对 Scala Swing 库的外部依赖,其方式与添加依赖的方式完全相同Java中的外部库。我猜这篇文章只涵盖了正常的构建系统,因为通常使用 IDE 项目的人让 IDE 负责他们的依赖管理。
  • 好的,谢谢!是的,我需要做的就是在 Scala 发行版中找到 jar 文件并将其添加到构建路径中。现在我对所有关于修改配置文件和使用 SBT 的东西感到困惑而感到愚蠢。认真的 Scala 用户(我没有声称自己是)不使用 IDE 吗?无论如何,这就是让我的旧程序再次运行所需的全部线索,非常感谢!
  • 一般来说,是的,IDE 被使用,而不是使用 IDE 的本地构建工具(这对于持续集成之类的东西很不方便——您不一定希望构建服务器启动 Eclipse 只是为了测试您的程序),通常是外部构建工具。我认为 SBT 和 Maven 是 Scala 最常见的东西,尽管我听说过 Gradle 的好消息。请注意,这并不排除使用 IDE! IntelliJ 和 Eclipse 都会很高兴地导入例如一个 Maven 项目。
【解决方案2】:

我也有同样的问题,但是经过一些步骤后,我成功使用了 Scala.swing。

以下是我遵循的一些步骤,希望对您有所帮助。

1)将外部jar添加到javaBuildPath(右键项目->属性->javaBuildPath->添加外部jar->添加scala.swing.x)

2) 执行此操作后,我遇到 typeNotFound 错误

3) 创建你想要为 swing 编写代码的类

4) 创建对象,在 main() 中你必须通过 new 关键字创建上面的类对象

5) 这样做之后,它允许你访问 SimpleSwingApplication 的方法,所以调用 startup()。

6) 仅此而已,

考虑下面的例子是否可以帮助你理解我的意思,

 class FirstUI  extends SimpleSwingApplication
{

       def top= new MainFrame {
       title = "GUI Program #1"
       preferredSize = new Dimension(320, 240)
       contents = new Label("Here is the contents!")

  }

}

    object First
    {
      def main(str: Array[String])
      {
            val f =new FirstUI
            f.startup(str)
      }
    }

将此文件另存为 First.scala 并运行它。希望这会对您有所帮助。

【讨论】:

    【解决方案3】:

    只需将scala-swing.jar 添加到项目的依赖项中。

    您可以从project webpage 检索预编译文件。在 README 文件的顶部,您有指向现有版本的蓝色图标。现在,the current release 适用于 Scala v2.11。在这个页面,下载jar文件的链接在右边。

    下载 jarfile 后,打开 eclipse 并进入项目的属性(右键单击项目根目录/属性)。在 Java Build Path 选项卡中,添加刚刚下载的文件的路径。

    请注意,在我的例子中,我还必须添加一个scala-library.jar(在您可以从 Scala 主页下载的 zip 文件中找到)。 Eclipse 中的 Problem 选项卡帮助我调试了该问题。

    【讨论】:

      【解决方案4】:

      我在这个烂摊子上挣扎了很多。我还需要将 /usr/share/java/scala/ 中的 scala-swing.jar 和 scala-library.jar 作为外部 JAR 包含到项目中。 (在属性 > Java 构建路径 > 库中)

      那么 JRE 系统库也不可能只是任何可用的。例如“工作区默认值:JRE (java-1.8.0-openjdk-1.8.0.212.b04-0.fc29.x86)”不起作用,但“执行环境:JavaSE-1.8 (java-1.8.0-openjdk- 1.8.0.212.b04-0.fc29.x86_64)”确实有效。我不知道将其添加为“工作区默认”与“执行环境”有什么区别

      至少在 Fedora 29 中,如果我没有添加“Scala 库容器”,Eclipse 会出错,尽管我已经将 scala-library.jar 作为外部 JAR。

      但是在编译scala时出现错误: “在 plotchartlib (2.10.6) 的构建路径中找到的 scala 库版本早于 scala IDE (2.12.3) 提供的版本。设置 Scala 安装选择以匹配。”

      我仍然需要做的是,在属性 > Java 构建路径 > 订单和导出中,必须将“Scala 库容器 [2.12.3]”放在底部并在其上方放置 scala-library.jar。

      我不知道为什么这么难,是因为 Fedora 29 是如何配置 Eclipse 的,但我花了 2 个工作日才让它工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-13
        • 1970-01-01
        • 1970-01-01
        • 2016-11-08
        • 1970-01-01
        相关资源
        最近更新 更多