I am unable to draw line when I press the component in Java Swing. How can I do this? I already used paint method, my problem is when program executes paint method invoke automatically, `DrawLine()` method will be there in paint method, so is there any way that I can get the lines other than paint method?

Please give some suggestion.

Below code I have tried, it's displaying lines but I want to display the lines when I click the component.

```
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

public class ReferenceLink1 extends JFrame 
{
    JLabel l1;
    JLabel l2;
    JPanel p1;

    ReferenceLink1()
    {               
        p1 = new JPanel();
        p1.setLayout(null);
        p1.setBackground(Color.ORANGE);
        p1.setOpaque(true);
        p1.setBounds(0,0,300,400);

        setLayout(null);
        l1 = new JLabel();
        l1.setText("l1");
        l1.setBounds(20, 40, 100, 40);
        l1.setHorizontalAlignment(SwingConstants.CENTER);
        l1.setBackground(Color.GREEN);
        l1.setOpaque(true);

        l2 = new JLabel();  ;
        l2.setText("l2");
        l2.setBounds(20, 100,100,40);
        l2.setBackground(Color.BLUE);
        l2.setHorizontalAlignment(SwingConstants.CENTER);
        l2.setOpaque(true);

        p1.add(l1);
        p1.add(l2);
        add(p1);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        setBounds(0,0,400,400);
    }

    public void paint(Graphics g)
    {
        super.paint(g);
        g.drawLine(77,110,77,130);        
    }

    public static void main(String args[])
    {
        ReferenceLink1 rf = new ReferenceLink1();
    }
}

```