1

如果您需要比这更多的代码,请告诉我!

我可以在 Eclipse 中完美地运行该程序。但是一旦我访问文件并在终端中运行 java Frame,它只会显示我游戏的一部分。它不显示任何 .png 文件。

这是我的主要方法:

import javax.swing.*;
import java.awt.*;

public class Frame extends JFrame {
public static String title = "Tower Defense Alpha";
public static Dimension size = new Dimension(700, 550);


public Frame() {
    setTitle(title);
    setSize(size);
    setResizable(false);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    init();

}

public void init(){

    setLayout(new GridLayout(1,1,0,0));

    Screen screen = new Screen(this);
    add(screen);

    setVisible(true);

}

public static void main(String args[]){
    Frame frame = new Frame();


}

}

这是我在 Eclipse 中访问文件的方式,这在终端中似乎不起作用:

for (int i=0; i<tileset_ground.length; i++) {
        tileset_ground[i] = new ImageIcon("res/tileset_ground.png").getImage();
        tileset_ground[i] = createImage(new FilteredImageSource(tileset_ground[i].getSource(), 
                                        new CropImageFilter(0, 26*i, 26, 26)));
    }
4

1 回答 1

0

似乎问题在于,在终端上,程序正在从 运行Client/src folder,因此它试图在 上查找Client/src/res不存在的图像。

另一方面,Eclipse 保留单独的文件夹并使用项目文件夹作为其根文件夹启动程序:

Client
|
+-- bin (classes compiled by Eclipse)
|
+-- res (images)
|
+-- src (source code)

通过javac *.javawhile 在src文件夹上运行,您将在文件夹上创建已编译类的副本src

在终端上,您需要返回到客户端文件夹并从那里启动您的程序java -classpath bin Frame

于 2013-03-18T02:43:33.250 回答