J'ai un JPanel peuplé de plusieurs composants personnalisés opaques. J'aimerais maintenant dessiner quelque chose au-dessus de ces composants en surchargeant la méthode paintComponent(). Mon problème est que l'élément peint est placé derrière les composants intégrés et, comme ils sont opaques, il est couvert par eux.
Existe-t-il un moyen de faire apparaître la peinture au-dessus des composants ?
Voici un petit exemple de ce que j'essaie de faire :
public class DrawOnTop {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame f = new JFrame("Draw on top");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new MyPanel());
f.pack();
f.setVisible(true);
}
});
}
}
class MyPanel extends JPanel {
public MyPanel() {
setLayout(new BorderLayout(3, 3));
add(new JButton("Button 1"), BorderLayout.NORTH);
add(new JButton("Button 2"), BorderLayout.CENTER);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.red);
g.drawLine(0, 0, getVisibleRect().width, getVisibleRect().height);
}
}