Finding prime numbers in user specified array
Indentation

Your indentation in run() and other methods can be improved:


boolean prime = true;
       for (int j = 2; j &lt; n; j++) {
               if (n%j == 0){
                   prime = false;
                   break;
                     }
       }



At first, I thought that was another level of nesting.  You should write it like this.

boolean prime = true;
for (int j = 2; j &lt; n; j++) {
    if (n%j == 0){
        prime = false;
        break;
    }
}




Naming

Don't name loop variables any random number:


for (int n = start; n &lt;= end; n++) {
    for (int j = 2; j &lt; n; j++) {



You should give them a name describing what they are:

for (int potential_prime = start; potential &lt;= end; potential++) {
    for (int divisor = 2; divisor &lt; n; divisor++) {




Algorithm

When you check whether any number n is prime, you check the divisors j from 2 to n.  If a divisor j is greater than the floor (sqrt (n)), you need not check it.  This is because once you get above this number and less than n / 2, you are only checking for the reverse pairs you checked before (4 * 5 == 5 * 4), and any number greater than n / 2 cannot go into n more than once.  Eliminating these extra checks could greatly speed your algorithm up on very large numbers.