Mostrar números primos

Pessoal, estou com dificuldades de fazer esse trabalho para a faculdade, alguém poderia me auxiliar? (OBS: Tenho que utilizar Swing, mas a dúvida é no método é como identificar os primos e guardá-los para exibir depois)

  1. Implementar usando interface Swing um programa que ao
    digitar em uma caixa de texto um número e ao selecionar a
    tecla ENTER, mostrar os valores primos equivalentes a esse
    número.

a) Deverá ser usada uma interface gráfica swing contendo
dois JTextField e um JButton.
b) Somente poderá ser habilitado o botão após a caixa de
texto ser devidamente preenchida.
c) Caso o usuário apague o valor da caixa de texto o botão
de comandos deve aparecer desabilitado.
d) A resposta deverá ser enviada para outra caixa de texto
que deve estar desabilitada.
e) Deve ser construído um método para efetuar as
operações.
f) A resposta deve ser mostrada conforme o exemplo
abaixo.
Exemplo:
Entrada: 20
Saída: 2 * 2 * 5 = Existem 3 primos cujo produto é 20
Create PDF

Tenta isso não sei se da certo peguei cod na net

[code]public void gerarPrimos (){

for (int i=1;i<=numero;i++){
//para cada potencial numero primo menor que this.numero
boolean ehPrimo = true;
for (int j=2;j < i;j++){
//de 2 a i-1, testa se i eh primo
if (i % j == 0){
ehPrimo = false;
}
}
if (ehPrimo) System.out.println(i);
}
}

public void setNumero(long l){
if (l > 0)
this.numero = (int)l;
else this.numero = 1;
}

public static void main(String[] args) {
GeradorPrimos g = new GeradorPrimos(-23);
g.gerarPrimos();
g.setNumero(26L);
}
}[/code]

A questão da interface gráfica é so trabalho brutal e pesquisar nos componentes.
Para fatorar em primos, como em 20 = 2 * 2 * 5, você pode usar algo como:

String string = String.format( "%d = ", numero );
while ( true );
{
   int c = 0;
   if ( numero % listaPrimos[c] == 0 )
   {
      string += String.format( "%d", listaPrimos[c]);
      if ( numero != listaPrimos[c] )
         string += " *";
      numero /= listaPrimos[c];
   }
   else
      c++;
   if ( numero == 1 )
      break;
}

http://www.guj.com.br/posts/list/124189.java#671420