Então pessoal, estou com um problema, estou usando o método paintComponent para definir uma imagem em um jpanel, porem não estou conseguindo colocar um jlabel em cima do jpanel, segue o cod, estou usando uma classe para armazenar as configurações, assim chamando elas no jframe principal, grato! *obs: estou usando layout de borda, se eu mudo o layout a imagem não aparece
Olá amigo! eu criei este código espero ajudar. Ai para tu usar este objeto coloca um JPanel na tela principal instanciando a criação desta classe. é só clicar botão direito do JPanel e personalizar código , na parte de criação tu muda de padrão para personalizada, chamando este JPanel ex:
javax.swing.JPanel jpanel = PainelImagem.getInstance();
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.radiobox.utilitarios;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JPanel;
/**
*
* @author thiago-
*/
public class PainelImagem extends JPanel {
private final Image fundo = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/nome/do/pacote/suaimagem.formato"));
private static final long serialVersionUID = 1L;
private PainelImagem() {
}
public static PainelImagem getInstance() {
return PainelImagemHolder.INSTANCE;
}
private static class PainelImagemHolder {
private static final PainelImagem INSTANCE = new PainelImagem();
}
/**
*
* @param g
*/
@Override
public void paint(Graphics g) {
g.drawImage(fundo, 0, 0, getWidth(), getHeight(), this);
}
}
Olá amigo, eu fiquei um pouco perdido nesse código, teve alguns códigos que eu não mexi ainda:
javax.swing.JPanel jpanel = PainelImagem.getInstance();
essa função faz exatamente o que ?
Segue o cód do meu jFrame principal, o jframe é constituido com um jpanel dentro dele no qual eu puxo a classe:
public class Menu extends javax.swing.JFrame {
PainelImagem objImg = new PainelImagem();
public Menu() {
initComponents();
setLocationRelativeTo(this);
this.imgPanel.add(objImg);
IconesMenu();
}
public void IconesMenu(){
URL caminhoicone = getClass().getResource("/Graphich/Icone.png");
Image img = Toolkit.getDefaultToolkit().getImage(caminhoicone);
this.setIconImage(img);
}
Então esta parte ele estará chamando o objeto PainelImagem já com a imagem nele. Tu só tem que informar o caminho da imagem lá na classe PainelImagem depois alterar a criação do JPanel do seu JFrame para criação personalizada. Só para tu saber esta classe está utilizando padrão singleton , que lhe garante uma unica instancia do objeto. qualquer outra duvida só perguntar tentarei responder o mais breve possivel.
Na IDE Netbeans no momento que tu colocar o JPanel no JFrame tu clica com botao direito sobre o JPanel procure por personalizar codigo … ai e so fazer as alteracoes que indiquei. vlw qualquer outra duvida so dar um alo…