0

についての簡単な問題class.getResource("path")。パスはクラスの場所に従っていますか? ClassLoader を見るように誰かに言われましたが、何も得られませんでした。ルートでファイルを取得するにはどうすればよいですか (絶対パスを入力する以外の場所を検索する方法があれば)。返信ありがとうございます。

try
{
    image = ImageIO.read(Images.class.getResourceAsStream(imageName));
    BufferedImage img = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB);
    Graphics g = img.getGraphics();
    g.drawImage(image, 0, 0, null);
    g.dispose();
    image = img;
}
catch (IOException e)
{
    e.printStackTrace();
    return null;
}
4

2 に答える 2

0

Java アプリでリソース ファイルをロードする方法は多数あります。Sun が推奨するものを使用するClass.getResource("resource_name")Class.getResourceAsStream("resource_name")、URL と InputStream をそれぞれ取得します。resource_name を なし/で指定すると、クラス パッケージが前に追加されます。そのため、リソース ファイルはクラスと同じ場所 [フォルダー構造] にある必要があります。私が好きなのは、リソース ファイルを呼び出しgetResource()/、パッケージのルートに配置することです。

this.getClass().getResource("/resource/buttons1.png")

また

this.getClass().getResourceAsStream("/resource/TX_Jello2.ttf")
于 2012-09-26T08:14:11.770 に答える
0

あなたの場合:

Images.class.getResourceAsStream("/" + fileName)

クラス ルート フォルダに対して相対的に指定されたInputStreamforを返します。したがって、クラスがパッケージ内にある場合(フォルダーは com/company になります)、ファイル (これがファイル名のみの場合) は、「com」フォルダーと同じフォルダー内に存在します。FileimageNamecom.companyimageName

于 2012-09-26T08:15:11.110 に答える