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

时间:2016-06-22 02:56:24

标签: swing scala intellij-idea scala-swing

所以我对编程很新,现在我正试图更好地理解如何跨多个文件编程。

如何做到这一点,而不是尝试。

我第一次使用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)
    }
  }
}

所以我假设出了问题,在这个过程的某个地方,我没有给出其中一个文件足够/正确的信息。

2 个答案:

答案 0 :(得分:3)

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

因此CViewerMain应该是CViewerMainWindow类的包。

答案 1 :(得分:0)

根据项目结构,CViewerMain和CViewerMainWindow类都在同一个文件夹中。所以你需要遵循罗伯特的答案。

更改以下

package CViewerWindow

package CViewerMain