Я работаю над созданием настольной игры на Java. Для самого игрового поля я пытался разместить изображение доски в качестве фона всего JPanel, которое заполняет JFrame. Я нашел способ сделать это, но только с файлом, хранящимся локально, он должен уметь отображать изображение из пакета, в котором находится GUI.Добавление фонового изображения в JPanel
package Gui;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
//Proof of concept for setting an image as background of JPanel
public class JBackgroundPanel extends JPanel {
private BufferedImage img;
public JBackgroundPanel() {
// load the background image
try {
img = ImageIO.read(new File(
"C:\\Users\\Matthew\\Desktop\\5x5 Grid.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// paint the background image and scale it to fill the entire space
g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
}
}
Я читал, что с помощью ImageIcon хороший исправить, но я не знаю, как правильно его использовать.
Редактировать 1 - Я нашел здесь свой ответ http://www.coderanch.com/how-to/java/BackgroundImageOnJPanel У меня также была неправильная картинка в моей рабочей области. Спасибо за помощь
Вы хотите найти этот сайт, так как это было задано очень много. если вы хотите получить доступ к изображению из файла jar, то вы захотите сделать это как ресурс, то есть 'ImageIO.read (getClass(). getResourceAsStream (resourcePath));' Путь ресурсов будет относительным к вашим файлам классов. –
Примечание: ImageIcon - это не «хорошее исправление». –