Olá, eu gostaria de saber neste tópico qual a maneira que eu adiciono uma imagem de plano de fundo em um jframe, eu vou explicar, no meu programa, eu adicionou no jframe um jpanel contendo todos os componentes necessários para que ele funcione, porém eu gostaria que existisse atrás desse jpanel um plano de fundo, eu possuo uma imagem aqui mais não estou conseguindo adiciona-la, já tentei JImagePanel, não consegui, já tentei utilizar um jlabel e também tive problemas, alguém pode me ajudar?
Meu código é esse
`
package Pacote;
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;
import com.towel.swing.img.JImagePanel;
public class Indexmenu extends JFrame implements ActionListener{
JButton som = new JButton();
ImageIcon iconetelainteira = new ImageIcon(getClass().getResource("/Assets/fullscreenbutton.png"));
static JButton sobre = new JButton("Sobre");
ImageIcon log = new ImageIcon(getClass().getResource("/assets/Logo.png"));
JLabel l = new JLabel(log);
JPanel logo = new JPanel();
static JButton telainteira = new JButton();
static JButton configuracoes = new JButton("Settings");
static JButton sair = new JButton("X");
static JButton novojogo = new JButton("New Game");
static JButton continuar = new JButton("Load created game");
JPanel cima = new JPanel();
JPanel botoes = new JPanel();
JPanel jogo = new JPanel();
BorderLayout layout = new BorderLayout();
FlowLayout layoutdois = new FlowLayout();
GridLayout layouttres = new GridLayout(5,0,10,10);
ArrayList<Color> cores = new ArrayList<Color>();
Font fonte = new Font("Comic Sans MS",Font.BOLD,30);
Font fontedois = new Font("Comic Sans MS",Font.BOLD,20);
JButton importar = new JButton("Import Assets");
Indexmenu(){
new Actions();
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
Toolkit kit = Toolkit.getDefaultToolkit();
Image image = kit.createImage(getClass().getResource("/Assets/Cursor3.png"));
Point point = new Point(0,0); //
String nameCursor = "Image Cursor";
Cursor cursor = kit.createCustomCursor(image, point, nameCursor);
jogo.setCursor(cursor);
cores.add(new Color(255,255,0));
cores.add(new Color(255,0,0));
cores.add(new Color(0,255,0));
setTitle("");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
log.setImage(log.getImage().getScaledInstance(log.getIconWidth()-250,log.getIconHeight()-250, Image.SCALE_DEFAULT));
logo.add(l);
sair.setBorderPainted(false);
novojogo.setBorderPainted(false);
continuar.setBorderPainted(false);
configuracoes.setBorderPainted(false);
sobre.setBorderPainted(false);
telainteira.setContentAreaFilled(false);
telainteira.setBorderPainted(false);
importar.setBorderPainted(false);
som.setBorderPainted(false);
jogo.setLayout(layout);
jogo.add(cima,layout.NORTH);
jogo.add(logo,layout.CENTER);
jogo.add(botoes, layout.SOUTH);
novojogo.setFont(fonte);
continuar.setFont(fonte);
configuracoes.setFont(fonte);
sobre.setFont(fonte);
sair.setFont(fontedois);
importar.setFont(fontedois);
cima.setLayout(layoutdois);
cima.add(importar);
cima.add(som);
cima.add(telainteira);
cima.add(sair);
sair.setBackground(cores.get(1));
importar.setBackground(cores.get(1));
botoes.setLayout(layouttres);
botoes.add(novojogo);
novojogo.setBackground(cores.get(1));
botoes.add(continuar);
continuar.setBackground(cores.get(1));
botoes.add(configuracoes);
configuracoes.setBackground(cores.get(1));
botoes.add(sobre);
sobre.setBackground(cores.get(1));
botoes.setBorder(new EmptyBorder(0,400,0,400));
layoutdois.setAlignment(FlowLayout.RIGHT);
add(jogo);
novojogo.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
novojogo.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
novojogo.setSize(novojogo.getWidth()-10,novojogo.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
novojogo.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(novojogo.getWidth(),novojogo.getHeight());
novojogo.setSize(novojogo.getWidth()+5,novojogo.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
continuar.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
continuar.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
continuar.setSize(continuar.getWidth()-10,continuar.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
continuar.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(continuar.getWidth(),continuar.getHeight());
continuar.setSize(continuar.getWidth()+5,continuar.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
configuracoes.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
configuracoes.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
configuracoes.setSize(configuracoes.getWidth()-10,configuracoes.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
configuracoes.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(configuracoes.getWidth(),configuracoes.getHeight());
configuracoes.setSize(configuracoes.getWidth()+5,configuracoes.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
sobre.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
sobre.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
sobre.setSize(sobre.getWidth()-10,sobre.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
sobre.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(sobre.getWidth(),sobre.getHeight());
sobre.setSize(sobre.getWidth()+5,sobre.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
telainteira.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
telainteira.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
telainteira.setSize(telainteira.getWidth()-10,telainteira.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
telainteira.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(telainteira.getWidth(),telainteira.getHeight());
telainteira.setSize(telainteira.getWidth(),telainteira.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
sair.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
sair.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
sair.setSize(sair.getWidth()-10,sair.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
sair.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(sair.getWidth(),sair.getHeight());
sair.setSize(sair.getWidth(),sair.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
importar.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
importar.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
importar.setSize(importar.getWidth()-10,importar.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
importar.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(importar.getWidth(),importar.getHeight());
importar.setSize(importar.getWidth(),importar.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
som.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
som.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
if(som.getIcon().toString().contains("/Assets/sound-buttonoff.png")){
som.setIcon(new ImageIcon(getClass().getResource("/Assets/sound-button.png")));
}else if(som.getIcon().toString().contains("/Assets/sound-button.png")){
som.setIcon(new ImageIcon(getClass().getResource("/Assets/sound-buttonoff.png")));
}
som.setSize(som.getWidth()-10,som.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
som.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(som.getWidth(),som.getHeight());
som.setSize(som.getWidth(),som.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
som.setIcon(new ImageIcon(getClass().getResource("/Assets/sound-button.png")));
iconetelainteira.setImage(iconetelainteira.getImage().getScaledInstance(iconetelainteira.getIconWidth()-60,iconetelainteira.getIconHeight()-60, Image.SCALE_DEFAULT));
telainteira.setIcon(iconetelainteira);
telainteira.addActionListener(this);
}
public static void main(String[]args){
Indexmenu index = new Indexmenu();
}
public void actionPerformed(ActionEvent evento) {
if(evento.getSource()==telainteira){
}
}
}
`