3

どこに問題があるのか​​ わかりません。それはパスにありますか?コード構文にエラーはまったくありませんが、画像は表示されません。パス全体を提供する必要がありますか、それとも画像をディレクトリに配置してその名前を呼び出す必要がありますか? ありがとうございました。

public class NetworkingGame {

private JFrame jfrm;

NetworkingGame(){
    jfrm = new JFrame("Angry Painters");
    jfrm.setSize(800, 480);
    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jfrm.setVisible(true);

}// end of constructor

public void ImageLoading(){
    ImageIcon i = new ImageIcon("C:/Users/TOSHIBA/Documents/NetBeansProjects/NetworkingGame/build/classes/angry-painters.jpeg");
    JLabel jl = new JLabel(i);
    jfrm.add(jl);
}

public static void main(String[] args) throws Exception{

    SwingUtilities.invokeLater(new Runnable(){

        @Override
        public void run(){

            NetworkingGame ng = new NetworkingGame();
            ng.ImageLoading();
        } // end of run method
    }); // end of Runnable

   }//end of main method
}//end of class NetworkingGame
4

4 に答える 4

4

ファイル パスをアイコンの場所として使用しないでください。これはお使いのコンピューターでのみ機能します。世界中のすべてのマシンで C:/Users/TOSHIBA ...angry-painters.jpeg が適切な場所にあるとは期待できません。

使用するソース コード (.java) クラスの横にあるファイルをコピーしてから、

 new ImageIcon(getClass().getResource("angry-painters.jpeg"));

ビルダーは、イメージ リソースをクラス フォルダー自体にコピーする必要があります。

于 2013-02-01T10:05:30.270 に答える
1

あなたのコードは、画像をバインドする方法が気に入らないと思います。

画像/アイコンをソースフォルダーに置くことを前提としています

ImageIcon i=new javax.swing.ImageIcon(getClass().getResource("myimage.jpeg"))

または、ソースフォルダーにフォルダーを作成する場合

InputStream stream = this.getClass().getClassLoader().getResourceAsStream("/images/image.jpg");
BufferedImage bufferedImage=ImageIO.read(stream);
ImageIcon icon= new ImageIcon(bufferedImage);
于 2013-02-01T10:07:08.617 に答える