Bom pessoal, estou quebrando a cabeça faz 3 dias com este problema.
É o seguinte:
Tenho um JPanel com 4 JLabel.
Meu JPanel pussui um background que é uma imagem que coloquei assim:
JPanel panel = new JPanel(){
public void paintComponent(Graphics g) {
super.paintComponent(g);
Image imagem = new ImageIcon("resources/bgToolbar.png").getImage();
g.drawImage(imagem, 0, 0, this);
}
};
Já o meu JLabel criei assim:
JLabel label = new JLabel() {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
int w = getWidth();
int h = getHeight();
GradientPaint gradient = new GradientPaint(20, 0, color1, 20, h, color2, false);
g2.setPaint(gradient);
g2.fillRect(0, 0, w, h);
super.paintComponent(g);
}
};
adiciono o label no panel:
panel.add(label);
Adiciono um Listener ao JLabel para mudar a cor do background do meu panel quando passar o mouse em cima do label para um background gradiente:
label.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {
label.setOpaque(false);
label.repaint();
}
public void mouseExited(MouseEvent e) {
label.setOpaque(true);
label.repaint();
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
});
E o problema é este: o background do label fica naquela cor padrão meio acinzentada, e quando passamos o mouse por cima, a cor
gradiente fica certinho como o background.
OBS: quando não sobrecarrego o método paintComponent(Graphics g) do meu JLabel, o background fica normal do meu JPanel.
Nunca usei o SwingX, será que o JXLabel já faz esse esquema para o background gradiente?
Será que deu para entender meu problema. Alguém aí pode ajudar?
vlw