import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JPanel;

public class ConnectLines extends JPanel
{
private int x, y, x1=0, y1=0;

public ConnectLines()
{

addMouseListener(

new MouseAdapter() {

@Override
public void mouseClicked(MouseEvent event)
{

x=event.getX();
y=event.getY();
}
}
);

addMouseMotionListener(

new MouseMotionAdapter() {

@Override
public void mouseMoved(MouseEvent event)
{
x1=event.getX();
y1=event.getY();
repaint();
}
});
}
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawLine(x, y, x1, y1);
}

}

//the main fuction
import java.awt.BorderLayout;
import javax.swing.JFrame;

public class AppTest
{
public static void main(String args[])
{
JFrame app= new JFrame(“testing drag line”);

ConnectLines connectLines=new ConnectLines();
app.add(connectLines,BorderLayout.CENTER);

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(400, 300);
app.setVisible(true);
}

}