【问题标题】:Trying to get a hang of creating larger multiple source file programs, need help [Scala]试图掌握创建更大的多个源文件程序的窍门,需要帮助 [Scala]
【发布时间】:2016-06-22 02:56:23
【问题描述】:

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

这样做比尝试更好。

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

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

【问题讨论】:

  • 你是说包还是类? 但两个包都在同一个目录中
  • 包、类、文件,我不知道。
  • 放一张你的项目结构图没问题。
  • 感谢您帮助我imgur.com/cC1kWn0

标签: swing scala intellij-idea scala-swing


【解决方案1】:

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

所以 CViewerMain 应该是 CViewerMainWindow 类的包。

【讨论】:

    【解决方案2】:

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

    更改以下内容

    package CViewerWindow
    

    package CViewerMain
    

    【讨论】:

    • 好吧,它不再抱怨这个了。但是如何从主函数调用它呢?
    猜你喜欢
    • 2020-06-25
    • 2018-04-25
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多