four systems Ответов: 2

Спрайты не будут загружаться


java должна загружать файл изображения, но не загружается

в коде есть файлы классов
DrawImage.java следует загрузить изображение
Board.java создает доску с шириной и высотой

Что я уже пробовал:

package gms;

import java.awt.EventQueue;
import javax.swing.JFrame;

public class DrawImage extends JFrame {

    public DrawImage() {

        initUI();
    }

    private void initUI() {

        add(new Board());

        pack();

        setTitle("uc");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
    }

    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                DrawImage c = new DrawImage();
                c.setVisible(true);
            }
        });
    }
}

Board.java

package gms;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class Board extends JPanel {

    private Image uc;

    public Board() {

        initBoard();
    }
   
    private void initBoard() {
       
        loadImage();
       
        int w = uc.getWidth(this);
        int h =  uc.getHeight(this);
        setPreferredSize(new Dimension(w, h));       
    }
   
    private void loadImage() {
       
        ImageIcon cu = new ImageIcon("jvm.png");
        uc = cu.getImage();       
    }

    @Override
    public void paintComponent(Graphics g) {

        g.drawImage(uc, 0, 0, null);
    }
}

2 Ответов

Рейтинг:
2

CPallini

Я полагаю, вы попали в это (см. здесь[^]): "Когда вы указываете имя файла или URL конструктору ImageIcon, обработка блокируется до тех пор, пока данные изображения не будут полностью загружены или местоположение данных не окажется недействительным. Если расположение данных недопустимо (но не равно нулю), ImageIcon все равно успешно создается; он просто не имеет размера и, следовательно, ничего не рисует".


Рейтинг:
0

four systems

круто, изменил путь к файлу, теперь изображение загружается нормально

спасибо