This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
You have to save the line in some form as you draw it, and then just paint it in your paintComponent() method(). This method will be called as necessary to redraw the line. So, for example, each time you press a button, you might add a set of coordinates to an array. The paintComponent() method would read all those coordinates from the array and draw the line. Every time it's called it can redraw the whole line.