Как можно загрузить изображение как ресурс - 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"));