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 (чертежной доске) у меня есть
private Image image = Resources.getImage("image.png");
в моем компоненте краски у меня есть
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);
}
}