Processo não fecha após encerrar programa

Pessoal, sou novo no fórum e sou novo em java também. Adquiri recentemente o livro dos Deitel (6ª ed.) Até que comecei a seguir os exemplos do livro para criar interfaces gráficas, utilizando swing e awt. Porém, ao tentar fazer o exercício 4.1, que pede para desenharmos linha numa janela, aparece tudo corretamente, e quando eu clico no botão fechar, o processo continua correndo e tenho que matá-lo na mão. Gostaria de uma luz para não cometer erros (se fosse em C, tinha dado um exit(0) e tava tudo bem).
Segue os códigos

[code]//DrawLines.java
import javax.swing.JPanel;
import java.awt.Graphics;

public class DrawLines extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int width = getWidth();
int height = getHeight();
int counter = 1;
int passos = 0;
while(height - passos >= 0)
{
g.drawLine(0, 0, passos, height - passos);
passos = passos + 15;
counter++;
}
}
}

////DrawLinesTest.java/////////

import javax.swing.JFrame;

public class DrawLinesTest
{
public static void main(String args[])
{
DrawLines panel = new DrawLines();

	JFrame application = new JFrame();
	
	application.add(panel);
	application.setSize(250, 250);
	application.setVisible(true);
}

}[/code]

Coloca assim, dentro do método main:

application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Abraços!

Olá

Tenta com a seguinte linha a mais
setDefautCloseOperation(JFrame.EXIT_ON_CLOSE);

 public class DrawLinesTest  
 {  
     public static void main(String args[])  
     {  
         DrawLines panel = new DrawLines();  
           
         JFrame application = new JFrame();  
           
         application.add(panel);  
         application.setSize(250, 250);  
         application.setVisible(true);  
         application.setDefautCloseOperation(JFrame.EXIT_ON_CLOSE);  
     }  
# }  
import javax.swing.JPanel;  
import java.awt.Graphics;  
  
public class DrawLines extends JPanel  
{  
    public void paintComponent(Graphics g)  
    {  
        super.paintComponent(g);  
        int width = getWidth();  
        int height = getHeight();  
        int counter = 1;  
        int passos = 0;
//olha aqui
        this.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        while(height - passos >= 0)  
        {  
            g.drawLine(0, 0, passos, height - passos);  
            passos = passos + 15;  
            counter++;  
        }  
    }  
}  

Só mais uma informação… se voce quiser deixar essa tela no meio da tela voce só precisa setar o a posição relativa a nada

public static void main(String args[])   
    {   
        DrawLines panel = new DrawLines();   
           
        JFrame application = new JFrame();   
        application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        application.setLocationRelativeTo(null);
        application.add(panel);   
        application.setSize(250, 250);   
        application.setVisible(true);   
    }   

Galera, valeu pela dica. Era exatamente isso que eu estava precisando. E vamo que vamo seguindo os estudos. Mark_Ameba, vlw pela outra dica. É sempre bom saber além do escopo do livro.
Vlw