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);
}
}
나는 이미지 파일을 올리는 곳에서 리소스 클래스를 가지고있다. 내 주요 JPanel의에서자바 이미지가 리소스로 즉시 로딩되지 않음
(드로잉 보드) 난 내가
g2.drawImage(image, x, y, width, height, null);
이 내 페인트 성분이
private Image image = Resources.getImage("image.png");
을 내가 먼저 상자 (사각형)을 만들 때 내 문제가되는에 이미지는 사용자가 손잡이처럼 움직일 수 있음을 알기 위해 이미지를 오른쪽으로 그려야합니다. 이미지가 바로 팝업되지 않지만, 내가 있어야 할 곳을 클릭하면 그 이미지가 나타납니다. 이 클래스 로딩과 관련이 있는지 궁금합니다.
* 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);
}
}
문제가 코드의 다른 위치에있는 것으로 의심됩니다. 컨테이너를 다시 검증할지 여부와 관계없이 구성 요소를 추가하는 방법에 대해 ... 코드를 더 게시 할 수 있습니다. –