试图掌握创建更大的多源文件程序的窍门,需要帮助 [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
所以我对编程还很陌生,现在我正试图更好地了解如何跨多个文件进行编程。
这样做比尝试更好。
我也是第一次使用 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