Olá, eu possuo uma interface já montada, eu gostaria de saber se é possível adicionar uma imagem de plano de fundo atrás de todos os componentes, meu código é esse:
`
package Mainmenu;
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.BorderFactory;
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();
JButton sobre = new JButton("Sobre");
JButton telainteira = new JButton();
JButton configuracoes = new JButton("Settings");
JButton sair = new JButton("X");
JButton novojogo = new JButton("New Game");
JButton continuar = new JButton("Load created game");
JButton importar = new JButton("Import Assets");
ImageIcon iconetelainteira = new ImageIcon(getClass().getResource("/Assets/fullscreenbutton.png"));
ImageIcon img = new ImageIcon(getClass().getResource("/Assets/Logo3.png"));
JPanel cima = new JPanel();
JPanel botoes = new JPanel();
JPanel jogo = new JPanel();
JPanel logo = 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);
boolean bo = false;
JLabel lg = new JLabel(img);
Indexmenu(){
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));
mouses();
setTitle("I am Shinobi Game");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
logo.add(lg);
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);
sair.setFocusable(false);
novojogo.setFocusable(false);
continuar.setFocusable(false);
configuracoes.setFocusable(false);
sobre.setFocusable(false);
telainteira.setFocusable(false);
importar.setFocusable(false);
som.setFocusable(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);
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);
sair.addActionListener(this);
}
public static void main(String[]args){
Indexmenu index = new Indexmenu();
}
public void actionPerformed(ActionEvent evento) {
if(evento.getSource()==telainteira){
if(bo==false){
bo = true;
this.dispose();
this.setUndecorated(true);
this.setVisible(true);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
logo.setBorder(BorderFactory.createEmptyBorder(70,50,0,0));
}else if(bo==true){
bo = false;
this.dispose();
this.setUndecorated(false);
this.setVisible(true);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
logo.setBorder(null);
}
}
if(evento.getSource()==sair){
System.exit(0);
}
}
public void mouses(){
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) {
}
});
}
}
`