Как можно загрузить изображение как ресурс - Java

Узнай цену своей работы

Формулировка задачи:

Изучать Java начал совсем недавно, и вот что-то сделал. Экспортировал в .jar, потом в .exe, но само изображение не видно, окно получается пустым на др. компьютерах. Можно ли как-то изображение boss.png загрузить так же как и иконку для этого окна?
import javax.imageio.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class move_img {
    public static void main(String[] args) {
        myFrame okno= new myFrame();
}
}
class myFrame extends JFrame
{
    java.net.URL imgURL = myFrame.class.getResource("/GUI/mainIcon3.png");
    public myFrame()
    {
        myPanel np = new myPanel();
        Container cont = getContentPane();
        cont.add(np);
        setBounds(10, 10, 800, 600);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Big Russian Boss v.1.0");
        setIconImage(new ImageIcon(imgURL).getImage());
    }
}
class myPanel extends JPanel
{
    private int x=0,y=0;
    private int napr = 2;
    private Image img;
    private class myKey implements KeyListener
    {
        public void keyPressed(KeyEvent e)
        {
            int key_ = e.getKeyCode();
            //System.out.println(key_);
            if(key_==87)napr=0;
            if(key_==83)napr=1;
            if(key_==68)napr=2;
            if(key_==65)napr=3;
            if(key_==32)napr=4;
            if(key_==81)napr=5;
            if(key_==69)napr=6;
            if(key_==90)napr=7;
            if(key_==67)napr=8;
        }
        public void keyReleased(KeyEvent e) {}
        public void keyTyped(KeyEvent e) {}
    }
    public myPanel()
    {
        setBackground(Color.PINK);
        addKeyListener(new myKey());
        setFocusable(true);
            Timer nt = new Timer(1,new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    if(napr==0) y--;
                    if(napr==1) y++;
                    if(napr==2) x++;
                    if(napr==3) x--;
                    if(napr==5) x--;
                    if(napr==5) y--;
                    if(napr==6) x++;
                    if(napr==6) y--;
                    if(napr==7) x--;
                    if(napr==7) y++;
                    if(napr==8) x++;
                    if(napr==8) y++;
                    repaint();
                }
            });
                nt.start();
                    if(napr==4)nt.stop();
                    
            try
            {
                img = ImageIO.read(new File("C:\\Users\\Герман\\workspace\\Движение картинки\\GUI\\boss.png"));
            }
                catch(IOException exp) {}
            }
    public void paintComponent(Graphics gr)
    {
        super.paintComponent(gr);
        Font BigFontTR = new Font("TimesRoman", Font.BOLD, 30);
        Font BigFontTR1 = new Font("TimesRoman", Font.ITALIC, 15);
        gr.fillRect(x-1,y-1,img.getWidth(null)+2,img.getHeight(null)+2);
        gr.drawImage(img,x,y,null);
        gr.setColor(Color.BLACK);
        gr.setFont(BigFontTR);
        gr.drawString("Управление:", 5, 860);
        gr.setFont(BigFontTR1);
        gr.drawString("W - вверх", 15, 885);
        gr.drawString("S - вниз", 15, 910);
        gr.drawString("D - вправо", 15, 935);
        gr.drawString("A - влево", 15, 960);
        gr.drawString("Пробел - стоп", 15, 985);
        gr.drawString("Q - влево вверх", 150, 885);
        gr.drawString("E - вправо вверх", 150, 910);
        gr.drawString("Z - влево вниз", 150, 935);
        gr.drawString("C - вправо вниз", 150, 960);
    }
}

Решение задачи: «Как можно загрузить изображение как ресурс»

textual
Листинг программы
img = ImageIO.read(new File("C:\\Users\\Герман\\workspace\\Движение картинки\\GUI\\boss.png"));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5