试图掌握创建更大的多源文件程序的窍门,需要帮助 [Scala]

Trying to get a hang of creating larger multiple source file programs, need help [Scala]

所以我对编程还很陌生,现在我正试图更好地了解如何跨多个文件进行编程。

这样做比尝试更好。

我也是第一次使用 IDE,所以这可能是我的绊脚石。

上肉:

所以我只有一个文件,而应该是主要方法。在我看来,它接受 args,并调用 window 对象(当 window 打开时它不能做任何事情,对吧?)。

package CViewerMain

import CViewerMainWindow

/**
  * Created by Matt on 6/21/16.
  */
class CViewer {
  def main(args: Array[String]): Unit = {
    var coreWindow = new CViewerMainWindow
    coreWindow.main
    return
  }
}

该方法调用第二个文件中的 CViewerMainWindow。另外,IDE (Intellij IDEA) 告诉我第二个包名与目录结构不匹配,但两个包都在同一个目录中。

package CViewerWindow

import scala.swing._
import swing.event.UIElementResized

/**
  * Created by Matt on 6/21/16.
  */
package object CViewerMainWindow extends SimpleSwingApplication {
  def top = new MainFrame {
    title = "Hello, World!"
    preferredSize = new Dimension(320, 240)
    // maximize
    visible = true
    contents = new Label("Here is the contents!")
    listenTo(UI.this)
    reactions += {
      case UIElementResized(source) => println(source.size)
    }
  }
}

所以我假设出了问题,是在过程中的某个地方我没有提供其中一个文件 enough/correct 关于另一个文件的信息。

scala 中的包和 java 很好地映射到您的目录结构。如果两个class在同一个目录下,就是在同一个包里。

所以 CViewerMain 应该是 CViewerMainWindow 的包 class。

好的,基于项目结构,CViewerMain 和 CViewerMainWindow 类 都在同一个文件夹中,也就是包中。所以你需要遵循罗伯特的回答。

更改以下内容

package CViewerWindow

package CViewerMain