Boa tarde pessoal,
Tenho uma classe que se chama MyDesktopPane ( extends de um JDesktopPane ) nesta classe eu passo minha classe principal (jframe) e a imagem de fundo, quando eu abro a aplicação a imagem mostra corretamente, porém tenho um botão que quando o usuário clicar ele trocaria a imagem de fundo (sem fechar a aplicação), olhei os post e tentei várias formas e mesmo assim não funcionou, alguem poderia me ajudar?
Classe de JDesktopPane
public class MyDesktopPane extends JDesktopPane {
Image img;
TelaPrincipal telaPrincipal;
public MyDesktopPane(TelaPrincipal telaPrincipal, Image img2) {
this.telaPrincipal = telaPrincipal;
try {
img = img2;
// img = javax.imageio.ImageIO.read(new java.net.URL(getClass().getResource("08.jpg"), "08.jpg"));
} catch (Exception e) {}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
g.drawImage(img, 0, 0, screenSize.width - 1, screenSize.height - 1, this);
}
}
Na classe principal faço a instancia e passo a tela principal e imagem default.
public static MyDesktopPane desk;
Image img;
img = javax.imageio.ImageIO.read(new java.net.URL(getClass().getResource("08.jpg"), "08.jpg"));
desk = new MyDesktopPane(this,img);
TelaPrincipal.add("Center", desk);
E no botão que estou testando queria mudar a imagem, segue meu código:
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jbFolder) {
Image img;
try {
img = javax.imageio.ImageIO.read(new java.net.URL(getClass().getResource("07.jpg"), "07.jpg"));
desk = new MyDesktopPane(this,img);
this.repaint();
this.revalidate();
//Desktop.getDesktop().open(new File(util.getANTHOMEPATH()));
} catch (MalformedURLException ex) {
Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
}
}
Já tentei de tudo mas não troca de jeito nenhum o fundo.
Alguem teria uma ideia de como fazer?