Почему не появляется мое фото в моем проекте java chess?

Может кто-нибудь объяснить, почему в функции значка изображения моя фотография шахматной фигуры не будет отображаться на доске, когда я запускаю программу. Я добавил эту функцию в основную, но она, кажется, не показывает, что значок изображения начинается между строками 36-39.

package chess;



import java.awt.Color;
import java.awt.Graphics;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Toolkit;
public class chess extends JPanel
{
    final static int WINDOW_WIDTH=600; // Width of window
    final static int WINDOW_HEIGHT=600; // Height of window

    public void paint(Graphics g)
    {



        // Create Chess board

        g.fillRect(100, 100, 400, 400); // White squares
        for(int i = 100; i <= 400; i+=100){
                for(int j = 100; j <= 400; j+=100){
                    g.clearRect(i, j, 50, 50); // Black squares

            }
        }
        for(int i = 150; i <= 450; i+=100){
            for(int j = 150; j <= 450; j+=100){
                    g.clearRect(i, j, 50, 50);

                    //Print out image on board
                    ImageIcon image;                
                    image=new ImageIcon("brook.gif");
                     g.drawImage(image.getImage(),0*66,7*44,null); 

            }
        }
    }


    public static void main(String[] args)
    {

        JFrame window = new JFrame("Chess"); // Create Frame and give it the method named "window"

        window.setSize(WINDOW_WIDTH,WINDOW_HEIGHT); // sets the size of the window 
        window.getContentPane().add(new chess()); // adds the chess board to the window
        window.setLocationRelativeTo(null);     // Sets the window in the middle of the screen by setting it null
        window.setBackground(Color.BLUE);  // Window background color set to gray
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // When the close option is clicked the program will stop running
        window.setVisible(true); // Makes the window visible
    }  
}

1 ответ

Решение

Во-первых, ваша иерархия проекта должна выглядеть примерно так

Иерархия проектов

Тогда вам нужно изменить

image=new ImageIcon("brook.gif");

следовать

image=new ImageIcon(getClass().getResource("/brook.gif"));

В качестве окончательного варианта убедитесь, что вы вводите название своего gif как есть.

Всегда помните, что он чувствителен к регистру

Например

Для вышеупомянутой Иерархии я должен написать это

image=new ImageIcon(getClass().getResource("/sphere.png"));

Не

image=new ImageIcon(getClass().getResource("/Sphere.png")); // or
image=new ImageIcon(getClass().getResource("/SPHERE.png")); 
//The above 2 lines won't work.
Другие вопросы по тегам