0

だから私はプログラミングにかなり慣れていないので、現在、複数のファイルにまたがるプログラミング方法をよりよく理解しようとしています。

試してみるよりも、これを行うほうがよいでしょう。

また、IDE を使用するのはほぼ初めてなので、それが原因かもしれません。

肉の上に:

だから私は1つのファイルを持っていますが、メインの方法でなければなりません。私の頭の中では、引数を取り、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
  }
}

そのメソッドは、2 番目のファイルにある CViewerMainWindow を呼び出します。また、IDE (Intellij IDEA) は、2 番目のパッケージ名がディレクトリ構造と一致しないが、両方のパッケージが同じディレクトリにあることを教えてくれます。

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

したがって、私が間違っていると想定しているのは、プロセスのどこかで、ファイルの1つに他のファイルに関する十分な/正しい情報を提供していないことです。

4

2 に答える 2

3

scala および java のパッケージは、ディレクトリ構造にうまく対応しています。2 つのクラスが同じディレクトリにある場合、それらは同じパッケージにあります。

したがって、CViewerMain は CViewerMainWindow クラスのパッケージである必要があります。

于 2016-06-22T03:08:49.990 に答える
0

プロジェクト構造に基づいて、CViewerMain クラスと CViewerMainWindow クラスの両方が同じフォルダー (別名パッケージ) にあります。したがって、Robert's Answer に従う必要があります。

以下を変更

package CViewerWindow

package CViewerMain
于 2016-06-22T03:30:12.720 に答える