0
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;

public class spriteStore {
public static BufferedImage playerStanding;

public void getImage()
{
    try
    {
        playerStanding = ImageIO.read(new File("Cobalt\\pictures\\playerStanding1.png"));
    }
    catch(Exception e){System.out.println("Picture not found");}
}
}

画像を読み取って BufferedImage オブジェクトとして保存しようとしていますが、メイン コードを実行すると、

import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class Cobalt {
public Boolean movingLeft, movingRight, firstJump, secondJump;
public int jump = 0;
public Dimension screenSize;
public JFrame frame;
public JPanel panel;

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable()
    {
        public void run(){
            new Cobalt();
        }
    });

}
public Cobalt()
{
    frame = new JFrame("COBALT");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.setResizable(true);
    frame.setSize(500,500); //width and height
    panel = new MyPanel();
    frame.getContentPane().add(panel);
}
class MyPanel extends JPanel
{

    private static final long serialVersionUID = 1L;

    public void paint(Graphics g)
    {
        Graphics g2D = (Graphics2D) g;
        super.paint(g);
        g2D.drawImage(spriteStore.playerStanding, 100, 100, null);
    }
}
}

そして画像が表示されません。私は日食を使用しており、比較的初心者なので、私のエラーをお知らせください。

4

3 に答える 3

0

画像を表示するためにカスタム ペイントを行う必要はありません。

JLabel を使用できます。How to Use Iconsに関する Swing チュートリアルのセクションを読んでください。

于 2013-06-05T04:04:19.207 に答える
0

プロジェクトに次のような構造があると仮定します。

Cobalt
|
\---src
    |   Cobalt.java
    |               
    \---pictures
            playerStanding1.png

次のことを試してください。

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

    URL url = ClassLoader.getSystemClassLoader().
            getResource("pictures/playerStanding1.png");

    BufferedImage playerStanding = ImageIO.read(url);

    JLabel label = new JLabel(new ImageIcon(playerStanding));
    JOptionPane.showMessageDialog(null, label);

}
于 2013-06-05T04:15:34.763 に答える
-1

これを試してjlabelを作成してください

ImageIcon icon = createImageIcon("images/middle.gif",
                             "a pretty but meaningless splat"); 
JLabel thumb = new JLabel();
thumb.setIcon(icon);

そして、このように画像をロードします

/** 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;
}
}

そして、あなたがURLからそれを望むなら

URL PicURL = new URL("http://...");
ImageIcon imgThisImg = new ImageIcon(PicURL));
jLabel2.setIcon(imgThisImg);
于 2013-06-05T04:09:05.810 に答える