public class Resources
{
private static Resources myResource = new Resources();
public static Image getImage(String name)
{
URL url = myResource.getClass().getResource(name);
//URL url = Resources.class.getResource(name);
return Toolkit.getDefaultToolkit().getImage(url);
}
}
私はイメージファイルを配置している場所でこのようなリソースクラスを持っています。私は塗料のコンポーネントでこのJavaイメージはすぐにリソースとしてロードされません。
private Image image = Resources.getImage("image.png");
を持っている私のメインのJPanel(ボードの描画)で
私は
g2.drawImage(image, x, y, width, height, null);
を持っている私が最初にしたボックス(長方形)を作成するときに私の問題があります画像が右手に描かれて、それが可動である(カップハンドルのような)ことを知るためには、画像がすぐにポップアップしないが、どこにあるかをクリックすると表示される。これがクラスの読み込みなどと関係がありますか?
* UPDATE SSCCE LMNOPQRSTUVWXYZが何を意味するのかこれは?
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.*;
import javax.imageio.ImageIO;
import javax.swing.*;
public class ShowImage {
static public void main(String args[]) throws Exception {
JFrame frame = new JFrame("Display image");
JPanel panel = new testImage();
frame.add(panel);
frame.setSize(500, 500);
//frame.pack();
//JOptionPane.showMessageDialog(null, "Done setting size");
frame.setVisible(true);
frame.setExtendedState(frame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
}
}
class testImage extends JPanel {
Image image = Resources.getImage("pin.png");
public void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, 40, 40, null);
}
}
class Resources
{
private static Resources myResource = new Resources();
// NOTE: there is no error checking here so if parameter is mistyped
// somewhere else in code, then this will probably throw a nullpointerexception
public static Image getImage(String name)
{
// TODO: Find out which way is better or preferred
URL url = myResource.getClass().getResource(name);
return Toolkit.getDefaultToolkit().getImage(url);
}
}
あなたの問題は、コードのどこか他の場所にあると思われます。コンテナを再検証するかどうか、おそらくコンポーネントをどのように追加していますか?もっとコードを投稿したいかもしれません。 –