Comparação de Datas do jTextField

Bom estou fazendo um programa de locação, que ele pega a data do banco, tando a inicial como final e o usuario coloca a taxa e ele calcula o preço final. Porém quando a data é por exemplo Inicial: 11/11/0001 e Final 01/12/0001 ele trata como 10 dias. Alguém tem um código que resolva ou que ajude?
Obs: o código está direto no botão de calcular dias.
O código é esse:

SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy");     
   try {     
       
      Date date1 = sdf.parse(jTextField2.getText());     
      Date date2 = sdf.parse(jTextField3.getText());     
      int differenceMilliSeconds = (int) (date2.getTime() - date1.getTime());   
       dataFinal = (differenceMilliSeconds/1000/60/60/24);
       dataFinal2 = dataFinal;
   } catch (ParseException e) {     
      e.printStackTrace();     
   }     

Para cálculos com datas é melhor utilizar o java.util.Calendar

Exemplo:
Se você quer saber a diferença de dias

SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy");
Date date1 = sdf.parse(jTextField2.getText());    
Date date2 = sdf.parse(jTextField3.getText());
			  
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date1);
			  
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date2);
			  
int dias = cal2.get(Calendar.DAY_OF_MONTH) - cal1.get(Calendar.DAY_OF_MONTH);

Só pra completar, dê uma olhada neste artigo:
http://www.guj.com.br/articles/8

é bastante superficial, mas pode lhe acrescentar algo.

para a quantia de dias de um ano usa-se DAY_OF_YEAR

int dias = (int) cal2.get(Calendar.DAY_OF_YEAR) - cal1.get(Calendar.DAY_OF_YEAR);