Java'da bir masa oyunu oluşturmak için çalışıyorum. Oyun tahtası için, JFrame'i dolduran JPanel'in tümünün arka planı olarak tahta görüntüsünü yerleştirmeye çalışıyordum. Bunu yapmanın bir yolunu buldum, ancak sadece yerel olarak saklanan dosyada, görüntüyü GUI içinde olduğu paketten de alabilmesi gerekiyor.Bir JPanel'e arka plan resmi ekleme
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);
}
}
Ben ImageIcon kullanarak iyi bir düzeltme olduğunu okudum, ama ben düzgün nasıl kullanılacağını bilmiyorum.
Düzeltme 1 - Buraya bakmayın cevabı burada bulabilirsiniz http://www.coderanch.com/how-to/java/BackgroundImageOnJPanel Ayrıca çalışma alanımda yanlış biçimlendirilmiş bir resim vardı.
Bu site çok istendiğinde arama yapmak isteyeceksiniz. Bir jar dosyasına ait bir görüntüye erişmek istiyorsanız, bunu bir kaynak olarak yapmak isteyeceksiniz, yani, ImageIO.read (getClass(). getResourceAsStream (resourcePath)); 'Kaynak yolu göreceli olarak sınıf dosyalarına. –
Not: ImageIcon * bir "iyi düzeltme" değil. –