0

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

这样做比尝试更好。

我也是第一次使用 IDE,所以这可能是让我绊倒的原因。

上肉:

所以我有一个文件,而应该是主要方法。在我的脑海中,它需要 args,并调用窗口对象(当窗口打开时它不能做任何事情,对吧?)。

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)
    }
  }
}

所以我认为出了问题,是在过程中的某个地方,我没有为其中一个文件提供足够/正确的关于另一个文件的信息。

4

2 回答 2

3

scala 和 java 中的包很好地映射到您的目录结构。如果这两个类在同一个目录中,则它们在同一个包中。

所以 CViewerMain 应该是 CViewerMainWindow 类的包。

于 2016-06-22T03:08:49.990 回答
0

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

更改以下

package CViewerWindow

package CViewerMain
于 2016-06-22T03:30:12.720 回答