Tracer une ligne sur une JFrame

Je suis en train de dessiner une ligne à l'aide de la Graphics 2D, mais ensuite, la ligne s'affiche sur tous les
d'autres composants de la JFrame rendant invisible. Comment puis-je corriger ce problème?

Voici le code :

import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;

class Success extends JFrame{

    public Success(){
        JPanel panel=new JPanel();
        getContentPane().add(panel);
        setSize(450,450);

        JButton button =new JButton("press");
        panel.add(button);
    }

    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        Line2D lin = new Line2D.Float(100, 100, 250, 260);
        g2.draw(lin);
    }

    public static void main(String []args){
        Success s=new Success();
        s.setVisible(true);
    }
}
Pouvez-vous nous donner une capture d'écran?
Comment le problème doit-il être corrigé? Qu'aimeriez-vous votre programme pour le faire?
Je ne pouvais pas comprendre, vous tracez une ligne sur votre JFrame, puis vous ajouter des composants sur votre JFrame, de sorte que cette ligne est pour, si vous voulez cacher ce avec vos composants. Au lieu de dessiner cette ligne en étendant JPanel et dominante paintComponent(...), de sorte qu'il peut être visible, le long de avec d'autres composants 🙂 Juste pour le tracé d'une ligne, il ne faut pas simplement les remplacer paint(...) méthode, essayez de remplacer paintComponent(...) par le dessin sur le dessus d'un JComponent/JPanel
lorsque l'application démarre une ligne aussi bien que le bouton est affiché, toutes dans le même cadre

OriginalL'auteur | 2012-05-26