Pracuję nad budowaniem gry planszowej w Javie. Dla samej planszy próbowałem umieścić obraz planszy jako tło całego JPanela, który wypełnia JFrame. Znalazłem sposób, aby to zrobić, ale tylko z plikiem przechowywanym lokalnie, musi być w stanie pobrać obraz z paczki, w której znajduje się GUI.Dodawanie obrazu tła do 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);
}
}
Przeczytałem, że używanie ImageIcon to dobra poprawka, ale nie wiem, jak go właściwie używać.
Edytuj 1 - Znalazłem tutaj moją odpowiedź http://www.coderanch.com/how-to/java/BackgroundImageOnJPanel Miałem także obraz sformatowany nieprawidłowo w moim obszarze roboczym. Dzięki za pomoc
Będziesz chciał przeszukać tę stronę, ponieważ było to bardzo często zadawane. jeśli szukasz dostępu do obrazu z pliku JAR, będziesz chciał zrobić to jako zasób, np. 'ImageIO.read (getClass(). getResourceAsStream (resourcePath));' Ścieżka zasobów będzie względna do plików zajęć. –
Uwaga: ImageIcon to * nie * "dobra poprawka". –