2

アプリケーションで画像を表示しようとしています...

    picture = new JLabel("No file selected");
    picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
    picture.setHorizontalAlignment(JLabel.CENTER);

    scrollPane.setViewportView(picture);

    ImageIcon icon = new ImageIcon("map.jpg");
    picture.setIcon(icon);
    if (picture.getIcon() != null)                   // to see if the label picture has Icon
        picture.setText("HERE IS ICON");

そのコードを実行すると、「ここにアイコン」というテキストのみが表示されます。この質問がとても馬鹿げているように聞こえたら申し訳ありませんが、画像アイコンが表示されない理由は本当にわかりません:(

4

3 に答える 3

3

map.jpgがファイルとして存在することを確認する必要があります。確認したい場合は(テスト目的のみ)、フルパスを使用してみてください。あなたがそれを持っている方法では、パスはアプリケーションの開始ディレクトリに相対的です。

これで存在するかどうかを再確認できます:

System.out.println(new java.io.File("map.jpg").exists());
于 2012-11-20T15:38:53.563 に答える
2

出来るよ:

ImageIcon icon = createImageIcon("map.jpg", "My ImageIcon");

if (icon != null) {
    JLabel picture = new JLabel("HERE IS ICON", icon, JLabel.CENTER);
    picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
    picture.setHorizontalAlignment(JLabel.CENTER);

    scrollPane.setViewportView(picture);
}

createImageIconメソッド(前のスニペットで使用)は、指定されたファイルを検索し、そのファイルのImageIconを返します。ファイルが見つからなかった場合は、nullを返します。典型的な実装は次のとおりです。

/** Returns an ImageIcon, or null if the path was invalid. */
protected ImageIcon createImageIcon(String path,
                                           String description) {
    java.net.URL imgURL = getClass().getResource(path);
    if (imgURL != null) {
        return new ImageIcon(imgURL, description);
    } else {
        System.err.println("Couldn't find file: " + path);
        return null;
    }
}
于 2012-11-20T15:43:58.187 に答える
0

ファイルmap.jpgは、javaファイルと同じパッケージ(フォルダー)にない可能性があります。確認してください。

于 2012-11-20T15:36:31.127 に答える