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 *.javaするsrcことにより、コンパイルされたクラスのコピーをフォルダーに作成しsrcます。

ターミナルでは、Client フォルダーに戻り、そこからプログラムを起動する必要があります。java -classpath bin Frame

于 2013-03-18T02:43:33.250 に答える