同一个包中的类不能相互通信

时间:2013-10-07 13:39:38

标签: java swing

我刚刚开始制作Snake游戏,并且我制作了一个Main类,并立即制作了一个Display类。我为他们创建了一个包“Game”,但是当我编译Main类时,控制台说它无法找到“显示”。

这是Main类:

package Game;

public class Main {
public static Display f = new Display();

public static int w = 700;
public static int h = 400;

public static void main( String[] args ) {
    f.setTitle("  SNAKE");
    f.setSize(w, h);
} // end of method main()
} // end of class Main

这是Display类(未完成):

package Game;

import javax.swing.*;

public class Display extends JFrame {
public Display() {

} // end of constructor
} // end of class Display

3 个答案:

答案 0 :(得分:3)

考虑目录结构:

                 Project
                    |
         -------------------------
         |                       |
       source
         |                      build (this is where compiled stuff will go or resources)
    ------------
    |          |
Main.java    Display.java

现在从命令提示符转到Project目录并写下:

javac -d build source\*.java

这将自动在package folders文件夹中创建build(在这种情况下,Game将自动创建包含Display.classMain.class的文件夹。现在进入build文件夹并按如下方式运行:

java Game.Main

只需在终端上输入javac,即可找到有关javac使用的更多信息。可以使用javac的所有选项都将显示在终端上。

答案 1 :(得分:2)

确保两个类都位于编译器所期望的名为Game的目录中。

旁注: - 关注软件包名称并使用小写字母,例如,使用Java naming conventionsgame而不是Game

答案 2 :(得分:-1)

那个包名看起来很奇怪。尝试使用类似com.liamslagle.game的内容。